gpt4 book ai didi

c# - 解密TripleDES "Bad Data"

转载 作者:行者123 更新时间:2023-11-30 14:00:29 28 4
gpt4 key购买 nike

我是加密/解密新手。我正在尝试解密一个已加密并显示为 44 个字符的输入字符串。

这是我目前所拥有的,但当它尝试执行“TransformFinalBlock”函数时,我不断收到“错误数据”。

public static String Decrypt(String input)
{
try{
byte[] inputArray = Convert.FromBase64String(input);
TripleDESCryptoServiceProvider tripleDES = new TripleDESCryptoServiceProvider();
tripleDES.KeySize = 128;
tripleDES.Key = UTF8Encoding.UTF8.GetBytes("0123456789ABCDEF");
tripleDES.IV = UTF8Encoding.UTF8.GetBytes("ABCDEFGH");
tripleDES.Mode = CipherMode.ECB;
tripleDES.Padding = PaddingMode.PKCS7;
ICryptoTransform transform = tripleDES.CreateDecryptor();
byte[] resultArray = transform.TransformFinalBlock(inputArray, 0, inputArray.Length);
tripleDES.Clear();

return UTF8Encoding.UTF8.GetString(resultArray);
}
catch(Exception except){
Debug.WriteLine(except + "\n\n" + except.StackTrace);
return null;
}
}

最佳答案

如果您使用 IV,那么您应该使用 CipherMode.CBC。 ECB 不使用任何 IV。

此外,您的数据根本没有填充,它正好包含 32 个字节。要测试解密,通常先尝试不填充。这样您就可以通过查看生成的明文来确定使用了哪个填充。

纯数据太陈词滥调,不能在这里打印,所以我不会。

关于c# - 解密TripleDES "Bad Data",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10626126/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com