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

标签 database encryption password-encryption

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

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

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

最佳答案

AES在密码学上是合理的,并且可能是为新应用程序选择的最常见的加密(而不是散列)机制。

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

要了解 AES 和 Rijndael 之间的差异,请查看

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

there are some differences between Rijndael and the official FIPS-197 specification for AES

您应该为每个用户使用唯一的 IV。然而,存储每个用户的 key 会导致 key 管理场景变得复杂。我建议为应用程序提供一个 key ,并为每个用户提供一个 IV。

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

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

关于database - 在数据库中存储密码的首选可恢复方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11635798/

相关文章:

ssl - 如何配置 libssl 以使用 TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 密码套件?

sql-server - 为什么长时间运行的查询的连接数不断增加?

sql - 谷歌数据工作室(postgres)的日期格式问题

database - RETURN 不能在带有 OUT 参数的函数中有参数

linux - 使用 Linux 使用 AES 进行文件加密/解密

c - 用于解密的反向 ^ 运算符

java - 如何使用公钥加密字符串并使用私钥解密?

java - 加密应用程序数据的正确方法

java - 如何从 hashCode 获取字符串

php - 自定义 CMS 如何使用 PHP/MySQL 数据库为帖子创建类别