繁体   English   中英

在不使用SSL的情况下散列密码的最佳做法

[英]Best practices for hashing a password without using SSL

我知道这个问题听起来可能已经得到了解答但是和我在一起。 我有一个网站,需要用户注册并登录。在这个过程中,让我们注册用户会提供用户名和密码,系统会检查信息,然后POST自己为PHP脚本加盐和哈希将密码存储在数据库中之前的密码。

现在我认为这是安全的,盐和哈希密码总是最好的做法,但最近我想到了这是怎么回事,数据必须先发送到服务器才能被哈希,因为我不使用SSL用户名和密码是以未加密的方式发送的,那么我是否正确地假设这些信息将以纯文本形式发送?

如果是这样,这根本就不好。 所以我能看到的唯一两种方法是:

  1. 使用SSL并保护用户和服务器之间的连接并加密正在发送的数据。

  2. 在信息离开用户之前散列信息,这可以使用Javascript完成

我想实现第二个,但我不知道如何做到这一点。 最好的做法是什么?

我之前想到的是,在发送信息之前,AJAX脚本将控制数据并检查是否首先是我们正在寻找的信息,然后对信息进行加盐和哈希处理。

我描述的这个实现是否有任何安全隐患?

谢谢你的时间。

您可能对Secure Remote Password协议感兴趣。

使用SSL并保护用户和服务器之间的连接并加密正在发送的数据。

是的,这样做。

在信息离开用户之前散列信息,这可以使用Javascript完成

这不会保护数据。 相反,它会有效地将要发送到服务器的机密数据更改为密码的散列版本。 这仍然会以纯文本形式发送,攻击者可以嗅探它并确切知道要发送什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM