我可以采取哪些安全措施来保护不能在数据库中散列的密码?

问题描述:

我正在制作一个应包含密码安全类型功能的公司后端。很明显,密码需要是纯文本,所以用户可以阅读它们,或者至少以某种方式“纯”翻译成纯文本,所以我不能使用哈希值。我可以采取哪些安全措施来保护不能在数据库中散列的密码?

还有什么更多安全我能做的不只是将纯文本密码放入数据库吗?


注:这些(大部分)自动生成的密码是永远不会重复使用,除了它们保存为目的,其中大部分是FTP服务器凭据什么。

+0

真正的问题:你为什么需要它们是可逆的?你不能只为用户自动生成一个新的密码,如果他们忘记了? (这里有一些安全原理吗?) – 2012-07-22 23:43:17

+0

@JeffTratner:它们必须是可逆的,因为这是一个密码安全的。这是将密码保存到客户端的FTP服务器的功能。 – Hubro 2012-07-23 00:38:26

+0

感谢解释:)我不明白什么是密码安全的,我感到有点无聊。 – 2012-07-23 01:43:59

使用加密。密码不会以纯文本格式显示,因此您将拥有一些安全性,但可以将其颠倒过来。

this answer中的代码应该有效。

您可以使用MySQL的ENCODE()DES_ENCRYPT()AES_ENCRYPT()功能,并使用存储在安全的位置来加密密钥。