如何安全地存储密码供服务器端使用?

时间:2010-11-20 20:07:04

标签: javascript database encryption ftp password-protection

我正在寻找一种将FTP密码存储在数据库中的安全方法,只能由特定用户使用。 FTP详细信息应以如下方式存储:如果暴露整个数据库,则不显示FTP密码。这可能应该依赖于用户的密码,仅在用户提示进行FTP操作时才临时解密FTP密码。我正在寻找可以实现这一目标的解决方案。添加它可能对使用javascript和php的基于Web的应用程序有用。

这不是关于如何使用salt,hashes,md5,sha1等。这是关于保护服务器应该能够使用的FTP密码,例如连接到FTP服务器。这对于哈希来说根本不可能,因为这些只是一种方式。应该使用一些对称密码方法。

示例用例:

  • 用户登录服务器
  • 用户告诉服务器从安全存储在服务器上的FTP详细信息下载文件
  • 服务器查找FTP详细信息并删除加密(可能使用用户密码)此问题与您如何有效实施此步骤有关
  • 服务器执行其必须执行的操作,然后删除未加密的密码

3 个答案:

答案 0 :(得分:1)

编辑:以下内容似乎不再适用于该问题(现在似乎想要根据用户运行FTP操作(未通过通用身份验证机制连接),需要一个可逆的方案),我要离开它,因为我认为它包含有价值的信息。

我建议阅读Enough With The Rainbow Tables: What You Need To Know About Secure Password Schemes

它可能会回答一些问题,包括盐是什么(如何防止彩虹攻击),为什么MD5不是密码哈希的理想解决方案(它太快而且不再需要“重大加密突破”) ),如果数据受到损害会发生什么(为什么不存储纯文本)等等。它提供了有价值的见解。

我真的很喜欢这句话:

  
    

不,真的。使用别人的密码系统。不要建立自己的。

  

这是真的,即使是诙谐的。

答案 1 :(得分:1)

你可以使用Mcrypt:http://php.net/manual/book.mcrypt.php

答案 2 :(得分:-1)

听起来你正在寻找的是一个MD5哈希。

http://en.wikipedia.org/wiki/MD5

将密码存储到数据库时经常使用它们,为了进一步提高安全性,您可能还需要考虑使用密码。

http://en.wikipedia.org/wiki/Salt_(cryptography