-1
所以我嘗試用C#DESSymmetricAlgorithm DES C#。 Base64編碼
數據加密有以下代碼
static public string Encrypt(string _dataToEncrypt) {
SymmetricAlgorithm algorithm = DES.Create();
ICryptoTransform transform = algorithm.CreateEncryptor(key, iv);
byte[] inputbuffer = Encoding.Unicode.GetBytes(_dataToEncrypt);
byte[] outputBuffer = transform.TransformFinalBlock(inputbuffer, 0, inputbuffer.Length);
return Convert.ToBase64String(outputBuffer);
}
static public string Decrypt(string _dataToDecrypt) {
SymmetricAlgorithm algorithm = DES.Create();
ICryptoTransform transform = algorithm.CreateDecryptor(key, iv);
byte[] inputbuffer = Convert.FromBase64String(_dataToDecrypt); // Here is the problem.
byte[] outputBuffer = transform.TransformFinalBlock(inputbuffer, 0, inputbuffer.Length);
return Encoding.Unicode.GetString(outputBuffer);
}
和IM得到一個錯誤System.FormatException: 'Invalid length for a Base-64 char array or string.'
它的工作原理,當串有偶數個字符。
它甚至真正的加密/有奇數個字符的解密數據?
不要在新代碼中使用DES,它是不安全的,並被AES取代。 – zaph
提供示例輸入/輸出,用於演示錯誤,包括_dataToDecrypt in。Is – zaph