gpt4 book ai didi

C# AES 算法 - 我应该在哪里以及如何存储 key 和 IV

转载 作者:行者123 更新时间:2023-11-30 12:33:34 33 4
gpt4 key购买 nike

我正在使用 AES 算法对密码进行加密和解密 PasswordFormat已针对 asp.net 成员(member)系统进行加密。如果格式是散列的,我将为每个密码生成唯一的加盐值,并将其存储在存储密码的表中的列中。但是对于加密,它是不同的,我在下面担心

1

如果我为每个密码生成唯一的IVKey,那么我必须将它们保存在某个地方。从安全的角度来看,这种方法是否正确?

2

如果我在应用程序配置 (web.config) 文件中硬编码 IVKey 那么我将不得不担心当以上任何一对变化?我应该如何处理这种情况?

3

给我你的想法,我应该做什么。我会把它们放在这里:)

最佳答案

答案:

  1. 不,没有必要为每个密码提供一个唯一的 key - 它不会有用,因为您的 key 必须存储在某个地方。您不妨将密码存储在该安全系统中。

  2. 您不应将 key 存储在与密码具有相同访问条件的同一系统中。这将使加密存储变得无用。您应该将 key 放在其他地方以防止滥用,并在该系统内执行加密。

最好选择 PBKDF2 等函数并存储其结果。 key 管理是一件棘手的事情,不应该在没有关于如何进行的好主意的情况下选择(如果你这样做,请聘请专业人员)。

最后,IV 的整体思想是当使用相同 key 时它保护纯文本。如果每个纯文本/密文对都有一个 key ,则可以将 IV 设置为全零。然而,您的想法是使用单个 key ,存储在某处保存,以及与密文一起存储的随机 IV。

如前所述,如果您不知道这一点,那么您的方案就是不安全的,因为还有很多其他事情需要考虑,而您可能不知道。

PS Microsoft 有一些方法可以在系统中安全地存储 key ,您可能需要在 stackoverflow 上搜索该方法。然而,我不是 MS API 方面的专家。

关于C# AES 算法 - 我应该在哪里以及如何存储 key 和 IV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9077293/

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