爲什麼此代碼返回弱密鑰錯誤?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