首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# AES算法-我应该在哪里以及如何存储密钥和IV

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

Stack Overflow用户
提问于 2012-01-31 09:42:53
回答 1查看 3.3K关注 0票数 4

我正在使用AES算法加密和解密密码 PasswordFormat是加密的asp.net成员制度。如果格式是哈希格式,我将为每个密码生成唯一的盐渍值,并将其存储在存储密码的表中的一个列中。但是对于加密,我担心的是下面的不同

1

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

2

如果我在应用程序configuration(web.config)文件中使用HardCode IVKey,那么我将不得不担心当上面的任何一对更改时会发生什么?我该如何处理这种情况?

3.

告诉我你对我该做什么的想法。我将把它们放在这里:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-15 23:17:53

答案:

  1. 不,每个密码都不需要一个唯一的密钥--而且它也不会有用,因为您的密钥必须存储在某个地方。你最好把密码存储在那个安全的系统里。
  2. 您不应该使用与密码相同的访问条件将密钥存储在同一个系统中。这将使加密存储无效。您应该将密钥放在其他地方以防止滥用,并在该系统中执行加密。

选择像PBKDF2这样的函数并存储其结果要好得多。关键管理是一件棘手的事情,如果不知道如何进行(如果你这样做的话,请聘请专业人员),就不应该选择。

最后,IV的全部思想是,当使用相同的键时,它保护纯文本。如果每个纯文本/密码文本对都有一个键,则可以将IV设置为全部为零。但是,您可以使用存储在某个保存位置的单个密钥,以及存储在密码文本中的随机IV。

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

PS Microsoft有一些在系统中安全存储密钥的方法,您可能需要搜索堆栈溢出。然而,我并不是MS的专家。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9077293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档