4
이 코드를 사용하여 8 바이트 키를 사용하여 8 바이트 PlainText를 암호화하지만 결과는 항상 16 바이트 배열입니다.8 바이트 일반 텍스트의 DES 암호화 결과는 16 바이트 배열입니다.
public static byte[] Encrypt(byte[] PlainText, byte[] key)
{
MemoryStream ms = new MemoryStream();
DESCryptoServiceProvider mDES = new DESCryptoServiceProvider();
mDES.Mode = CipherMode.ECB;
mDES.Key = key;
CryptoStream encStream = new CryptoStream(ms, mDES.CreateEncryptor(), CryptoStreamMode.Write);
BinaryWriter bw = new BinaryWriter(encStream);
bw.Write(PlainText);
bw.Close();
encStream.Close();
byte[] buffer = ms.ToArray();
ms.Close();
return buffer;
}
ouptut의 처음 8 바이트는 예상 한 것이지만 나머지는이 코드와 관련이 없습니다.
위대한!, 추가 mDES.Padding = PaddingMode.None 작동합니다. 고마워요. – eledu81
일반 텍스트의 크기를 아는 한 괜찮습니다. 그렇지 않으면 일반 텍스트의 크기를 결정하기 위해 특정 패딩 메서드가 필요합니다 (이 Q/A를 보는 다른 사람들을 위해). –