Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何安全地存储服务器端使用的密码?_Javascript_Database_Encryption_Ftp_Password Protection - Fatal编程技术网

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

Javascript 如何安全地存储服务器端使用的密码?,javascript,database,encryption,ftp,password-protection,Javascript,Database,Encryption,Ftp,Password Protection,我正在寻找一种安全的方法,将FTP密码存储在只有特定用户才能使用的数据库中。FTP详细信息的存储方式应确保,如果整个数据库已公开,则FTP密码不会公开。只有在用户提示FTP操作时,才可能需要依靠用户的密码临时取消对FTP密码的加密。我正在寻找一个可以实现这一点的解决方案。添加它可能有用,它涉及使用javascript和php的基于web的应用程序 这不是关于如何使用salt、哈希、md5、sha1等。这是关于保护服务器应该能够使用的FTP密码,例如使用连接到FTP服务器。这对于散列是不可能的,因

我正在寻找一种安全的方法,将FTP密码存储在只有特定用户才能使用的数据库中。FTP详细信息的存储方式应确保,如果整个数据库已公开,则FTP密码不会公开。只有在用户提示FTP操作时,才可能需要依靠用户的密码临时取消对FTP密码的加密。我正在寻找一个可以实现这一点的解决方案。添加它可能有用,它涉及使用javascript和php的基于web的应用程序

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

示例用例:

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

听起来你想要的是MD5哈希

在将密码存储到数据库中时,它们经常被使用,为了进一步的安全性,您可能还需要考虑对密码进行加密


)

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

我推荐阅读

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

我很喜欢这句话:

不,真的。使用其他人的密码系统。不要建造你自己的


这是真的,即使是开玩笑。

你可以使用Mcrypt:

在大多数情况下,MD5是要避免的;使用SHA1或
crypt()
这不是我要找的。这样做的目的是,您在服务器上存储了一些FTP连接详细信息,用户可以登录,并且可以使用我的应用程序服务器登录到FTP服务器,其中FTP登录详细信息存储在服务器上。也许可以使用某种对称加密,但我不知道哪种方法适合我的目的。我将更新我的问题,使其更加详细。@meagar,你指的是什么crypt()?不要使用这个建议,这是一个可怕的建议!永远不要使用MD5或SHA*算法来存储任何密码。请参阅“请阅读我的更新问题”,这应该会澄清为什么这不是我想要的。链接是404,这里(大概)是不同URL上的同一篇文章:我建议使用用户提供的密钥加密凭据,并在每次需要访问凭据时向用户索要该密钥。。。您或我能够设计的任何系统,如果密钥和数据位于同一个系统上,都必然容易受到攻击。