使用DES3加密3000字节及以上
本文关键字:字节 3000 DES3 加密 使用 | 更新日期: 2023-09-27 18:25:28
我试图用DES3:加密数据
private byte[] EncryptKey(byte[] wrappedKey)
{
MemoryStream ms = new MemoryStream(wrappedKey);
TripleDESCryptoServiceProvider cryptoProvider = new TripleDESCryptoServiceProvider();
cryptoProvider.Key = transportKeyBytes; //key
cryptoProvider.Padding = PaddingMode.None;
cryptoProvider.Mode = CipherMode.ECB;
CryptoStream cs = new CryptoStream(ms, cryptoProvider.CreateEncryptor(), CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cs);
byte[] key = new Byte[wrappedKey.Length];
cs.Read(key, 0, wrappedKey.Length);
cs.Close();
ms.Close();
return key;
}
但我在说时出错了
Length of the data to encrypt is invalid.
可以加密的数据的最大大小是多少?
您没有使用任何填充。这可能是你犯错误的原因。通过不添加任何填充,您只能加密精确数量的8字节块。将填充更改为DES的PKCS#5。
ECB模式不安全。有关(文字)说明,请参阅维基百科。请改用CBC或CTR模式。
3DES已经过时。除非为了与旧系统兼容而必须使用AES。