gpt4 book ai didi

c# - 加密时如何设置 key 和向量?

转载 作者:行者123 更新时间:2023-11-30 22:37:29 24 4
gpt4 key购买 nike

我正在使用以下代码。 key 和向量是从网上复制的。那里没有 secret 。

    private static byte[] key = { 123, 217, 19, 11, 24, 26, 85, 45, 114, 184, 27, 162, 37, 112, 222, 209, 241, 24, 175, 144, 173, 53, 196, 29, 24, 26, 17, 218, 131, 236, 53, 209 };
private static byte[] vector = { 146, 64, 191, 111, 23, 3, 113, 119, 231, 121, 221, 112, 79, 32, 114, 156 };
private ICryptoTransform encryptor, decryptor;
private UTF8Encoding encoder;

public SimplerAES()
{
RijndaelManaged rm = new RijndaelManaged();
encryptor = rm.CreateEncryptor(key, vector);
decryptor = rm.CreateDecryptor(key, vector);
encoder = new UTF8Encoding();
}

谁能解释一下键和矢量设置的含义。我想私下编码我的数据加密方式,但我不确定从哪里开始。

谢谢,

最佳答案

key 只是您的加密 key ,是某人解密数据所需的密码。 AES 是一种对称密码,因此加密和解密将使用相同的 key 。

initialization vector (IV) 是技术细节:使用时 block cipherCBC mode ,每个输入 block 的密文取决于前一个输入 block 的密文(当然也取决于当前输入 block 和 key )。但是,当尝试加密第一个 block 时,没有“以前”的数据需要考虑;在这种情况下,IV 取代了“第 0 个”输入 block 的密文。

在实践中,这意味着在解密时,除了 key 之外还需要知道 IV。然而,IV 不是敏感信息,您可以简单地将它与密文一起存储(从而使 key 成为您需要解密但您还没有的唯一信息)。

注意:最好不要多次使用同一个 IV;每次需要加密时,您都可以简单地生成一个随机数。

关于c# - 加密时如何设置 key 和向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6521594/

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