【问题标题】:Where is the key and IV storage location in .net MVC?.net MVC 中的密钥和 IV 存储位置在哪里?
【发布时间】:2018-01-07 23:36:45
【问题描述】:

我有 asp.net MVC 5 项目并加密用户敏感信息并存储在数据库中,当我显示用户从数据库获取信息并解密的数据时(在 mvc 项目中加密/解密并将数据加密存储在数据库中)。

我使用AesCryptography 加密/解密数据。我有Key和IV,Key和IV的存放位置在哪里?

必须保存在 webconfig 中或在数据库中创建一个带有 Key 和 Iv 列的单独表,或者将 Key/IV 列添加到用户表中。

为每行数据创建一个键和 Iv 是个好主意吗?

【问题讨论】:

  • 选项 1:环境变量。选项 2:Machine.config。选项 3:数据库。 :)

标签: c# asp.net asp.net-mvc encryption


【解决方案1】:

您应该将密钥存储在 web.config 中。使用appSettings 作为最简单的方法,完全可以。

  <appSettings>
      <add key="DataEnryptionKey" value="allyourbase"/>
  </appSettings>

维基:

初始化向量的安全要求不同于 密钥,因此 IV 通常不需要保密。然而,在大多数 在这种情况下,重要的是永远不要重用初始化向量 在同一个键下。

IV 的重点是每个加密操作都不同。因此,当您两次加密“123”时,您将不会得到相同的加密输出。见维基。

所以不能将 IV 存储在 web.config 中。通用方法 - 将 IV 存储为第一个密码块。

简单的方法

使用MachineKey.Protect / MachineKey.Unprotect 方法 他们已经以安全的方式做事了。

您只需使用 IIS 或其他工具生成密钥。



【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-08
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 2013-02-19
    相关资源
    最近更新 更多