我几天来一直遇到以下代码的麻烦,我真的不知道为什么我有这么多麻烦,希望有人能指出我正确的方向,或许我是在过度思考它。
An unhandled exception of type 'System.Security.Cryptography.CryptographicException' occurred in mscorlib.dll
其他信息:错误数据。
这是代码
return Encoding.ASCII.GetString(new TripleDESCryptoServiceProvider() { Key = new MD5CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(key)), Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 }.CreateDecryptor().TransformFinalBlock(encrypted.Split('-').Select(s => Convert.ToByte(s, 16)).ToArray(), 0, encrypted.Split('-').Select(s => Convert.ToByte(s, 16)).ToArray().Length));
这就是所谓的。
{
if (args.Length == 0)
return;
if (args[0] == "new")
File.Delete("old_updater.exe");
else if (args[0] != Encryption.Decrypt_Param("06-8A-AB-DD-64-4C-6D-ED-AD-83-4A-1E-80-E4-36-15", "Incompitis Ingoramous"))
Process.GetCurrentProcess().Kill();
if (Process.GetProcessesByName("Updater").Length > 1)
Process.GetCurrentProcess().Kill();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
答案 0 :(得分:0)
打破代码有帮助!
您获得的错误在TransformFinalBlock中。您示例代码中的加密数据似乎没有填充。
将填充更改为PaddingMode.None
,它不再引发错误。