用于在数据库中存储密码的首选可恢复方法

时间:2012-07-24 17:03:21

标签: database encryption password-encryption

我想在服务器上的数据库中存储一些密码。

密码应该是可恢复的,因为我想将它们用于需要密码的第三方API。 (所以我不能使用像md5那样的单向方法......)

在数据库中保存密码的最佳方法是什么?没有比存储纯文本更好的方法吗?

1 个答案:

答案 0 :(得分:2)

AES具有加密功能,可能是为新应用程序选择的最常见的加密(与散列相对)机制。

注意为您加密的每个密码生成随机初始化向量(IV),并将密钥和IV与加密密码字节分开存储。

了解AES和Rijndael之间的差异检查

http://blogs.msdn.com/b/shawnfa/archive/2006/10/09/the-differences-between-rijndael-and-aes.aspx

  

Rijndael和AES的官方FIPS-197规范之间存在一些差异

您应该为每个用户使用唯一的IV。但是,存储每个用户的密钥会产生复杂的密钥管理方案。我会建议应用程序的一个密钥和每个用户的IV。

IV可以与密文一起保存。密钥应存储在数据库之外。

您可以将加密的密钥存储在web.config中。请参阅this