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

时间:2013-03-08 11:09:21

标签: php javascript passwords security

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

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

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

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

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

  3. 完成

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

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

    我对此描述的实现有任何安全隐患吗?

    感谢您的时间。

2 个答案:

答案 0 :(得分:1)

您可能对Secure Remote Password protocol感兴趣。

答案 1 :(得分:1)

  

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

是的,这样做。

  

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

完成

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