형식이 xxxxx-xxxxx-xxxxx (15 자) 인이 직렬 키 일을합니다. 나는 현재 내 문자열을 암호화 할 수 있지만 문제는 다음과 같습니다문자열을 15 자로 암호화합니다.
- 6 문자는 20 개 이상의 문자된다.
- 는 다음과 같은 몇 가지 underieable 문자를 가지고 : +, /, =
그래서 문자의 특정 번호로 문자열을 암호화하는 가장 좋은 방법이 있을까요? 필자의 경우 : 6 글자를 15 글자로 암호화.
나는 현재이 같은 것을 사용하고 있습니다 : 모든
public string EncryptString(string clearText, string Password)
{
byte[] clearBytes = System.Text.Encoding.Unicode.GetBytes(clearText);
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(Password, ByteGetter(UsageMode, "Password"));
byte[] encryptedData = EncryptByte(clearBytes, pdb.GetBytes(32), pdb.GetBytes(16));
return Convert.ToBase64String(encryptedData);
}
public static byte[] EncryptByte(byte[] clearData, byte[] Key, byte[] IV)
{
MemoryStream ms = new MemoryStream();
Rijndael alg = Rijndael.Create();
alg.Key = Key;
alg.IV = IV;
CryptoStream cs = new CryptoStream(ms, alg.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(clearData, 0, clearData.Length);
cs.Close();
byte[] encryptedData = ms.ToArray();
return encryptedData;
}
Pedantic aside : 알고리즘을 역전시킬 수 없다면 암호화 이상의 것입니다. 그래서 나는 해시 함수 (PBKDF2를 하나의 것으로 간주 할 수 있음)를 사용하고, 입력 데이터를 해시 한 후 Base64 대신 Base32를 사용하여 인코딩 한 후 무의미한 암호화 단계를 건너 뛰고 폐기하는 것이 좋습니다. 여분의 문자는 필요하지 않습니다. – millimoose
알고리즘을 취소하고 싶습니다. 댓글 주셔서 감사합니다. – JohnC1
알고리즘을 취소하려면 데이터를 삭제하거나 출력을 고정 된 크기로 제한 할 수 없습니다. – millimoose