gpt4 book ai didi

c# - C# 中的 Rijndael 解密

转载 作者:行者123 更新时间:2023-12-02 01:21:46 28 4
gpt4 key购买 nike

我需要使用 Rijndael 和这些值解密字符串:

key 大小 - 192

block 大小 - 128

key - cmdAj45F37I5ud2134FDg2fF

当我使用下面的代码时,出现错误:字符串大小不正确,任何人都可以帮助我吗?

public static string DecryptRijndael(string value, string encryptionKey)
{

var key = Encoding.UTF8.GetBytes(encryptionKey); //must be 16 chars
var rijndael = new RijndaelManaged
{
BlockSize = 128,
IV = key,
KeySize = 192,
Key = key
};

var buffer = Convert.FromBase64String(value);
var transform = rijndael.CreateDecryptor();
string decrypted;
using (var ms = new MemoryStream())
{
using (var cs = new CryptoStream(ms, transform, CryptoStreamMode.Write))
{
cs.Write(buffer, 0, buffer.Length);
cs.FlushFinalBlock();
decrypted = Encoding.UTF8.GetString(ms.ToArray());
cs.Close();
}
ms.Close();
}

return decrypted;

}

最佳答案

一个(大)问题是使用 UTF8.GetBytes() 从字符串中获取 byte[]。字节数很难控制,不太安全。

使用Rfc2898DeriveBytes.GetBytes()反而。然后您可以指定所需的长度。

但是当然,您在加密时也必须这样做。
我同意卢克关于 IV 的评论

关于c# - C# 中的 Rijndael 解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3306020/

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