为什么此代码返回弱密钥错误?Decrypting TripleDES:指定的密钥是已知的弱密钥,不能使用
static public byte[] TDESDecrypt(byte[] toDecrypt, byte[] key, CipherMode mode = CipherMode.ECB, PaddingMode padding = PaddingMode.None)
{
TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
tdes.Key = key;
tdes.Mode = mode;
tdes.Padding = padding;
ICryptoTransform cTransform = tdes.CreateDecryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toDecrypt, 0, toDecrypt.Length);
tdes.Clear();
return resultArray;
}
当我尝试执行行 “tdes.Key =键”,我得到的错误
deriveSessionKeyIS System.Security.Cryptography.CryptographicException: 指定键为一个已知的弱关键为TripleDES并且不能使用
为什么?我想要的密钥是随机的,但其中一个测试密钥是FB13347FE570DC4FFB13347FE570DC4F。哪里有问题?
在什么意义上使用16字节的密钥不被覆盖? – Evk
3DES密钥是24个字节。 – zaph
我已经将我的答案扩展了一下。 – Evk