2

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

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

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

4

1 回答 1

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 中。看到这个

于 2012-07-24T17:07:25.990 回答