Hash 是否可以根据另一个密码哈希验证密码哈希?
考虑以下交互作用: 用户将其用户名和密码存储在web服务器上。为了安全起见,服务器记录密码的散列加上一些唯一的salt 当用户使用客户机应用程序时,它向服务器发出请求,提交用户名和密码哈希以及其他一些唯一的salt 因此,您在服务器上有以下信息,需要知道请求是否真实:Hash 是否可以根据另一个密码哈希验证密码哈希?,hash,passwords,cryptography,md5,Hash,Passwords,Cryptography,Md5,考虑以下交互作用: 用户将其用户名和密码存储在web服务器上。为了安全起见,服务器记录密码的散列加上一些唯一的salt 当用户使用客户机应用程序时,它向服务器发出请求,提交用户名和密码哈希以及其他一些唯一的salt 因此,您在服务器上有以下信息,需要知道请求是否真实: 服务器的盐 服务器的哈希密码 客户的盐 客户端的哈希密码 再次。。。客户端发送:clientSalt+MD5(clientSalt+密码)。服务器具有serverSalt+MD5(serverSalt+密码)。我不想知道密码,
- 服务器的盐
- 服务器的哈希密码
- 客户的盐
- 客户端的哈希密码
clientSalt
+MD5(clientSalt+密码)
。服务器具有serverSalt
+MD5(serverSalt+密码)
。我不想知道密码,我只想知道哈希值是否是根据同一密码计算的
在不知道散列的密码的情况下,有没有办法验证两个散列的密码是否相同
我的目标是在客户机-服务器环境中允许某种形式的安全身份验证,而无需通过网络交换实际密码。这只是我的一个想法,但我甚至不知道这是否可行。这需要取消对密码的清除,这是不可能的。如果服务器接收到:
salt,md5sum
,则无法查看md5sum中的内容
而质询-响应协议将起作用。服务器应生成一个随机值
nonce
,并将其发送给客户端。客户端计算md5(md5(密码)| nonce))并将其返回给服务器。服务器通过检查需要取消密码清除的md5(storedpassword | nonce)进行验证,这是不可能的。如果服务器接收到:salt,md5sum
,则无法查看md5sum中的内容
而质询-响应协议将起作用。服务器应生成一个随机值nonce
,并将其发送给客户端。客户端计算md5(md5(密码)| nonce))并将其返回给服务器。服务器通过检查md5(storedpassword | nonce)
进行验证
我的目标是在客户机-服务器环境中允许某种形式的安全身份验证,而无需通过网络交换实际密码。这只是我的一个想法,但我甚至不知道这是否可能
为此,我建议研究Kerberos:以及
我的目标是在客户机-服务器环境中允许某种形式的安全身份验证,而无需通过网络交换实际密码。这只是我的一个想法,但我甚至不知道这是否可能
为此,我建议研究Kerberos:and不,您不能这样做
一旦你在混合物中加入盐,就几乎不可能比较散列。(要做到这一点,需要在比较“未散列”数据之前以某种方式“取消散列”。不,您不能这样做
一旦你在混合物中加入盐,就几乎不可能比较散列。(这样做需要在比较“未散列”数据之前以某种方式“取消散列”这些散列。)这是不可能的。如果您没有在服务器上存储密码,则用户必须提供密码 或
如果您将密码存储在服务器上,用户可以提供使用请求的salt计算的哈希值。这是不可能的。如果您没有在服务器上存储密码,则用户必须提供密码 或
如果您将密码存储在服务器上,用户可以提供使用请求的salt计算的哈希值。您将无法使用此设置验证哈希值。 如果您不希望有人看到密码通过网络传输,SSL是更简单的方法。 如果您不想使用SSL,可以查看SRP。
另外:不要使用MD5+Salt存储密码,请使用诸如bcrypt或scrypt之类的密钥增强功能。您将无法使用此设置验证哈希。 如果您不希望有人看到密码通过网络传输,SSL是更简单的方法。 如果您不想使用SSL,可以查看SRP。 另外:不要使用MD5+Salt来存储密码,使用诸如bcrypt或scrypt之类的密钥增强功能。可能是一种方法,可能会使用,这取决于您的权衡。其中一个折衷方案是,控制客户端的攻击者可能会使用泄露的哈希来验证自己 不要发明自己的加密协议。使用知名度高、经过测试的产品。如果可能,请使用现有(经过审查的)实现 可能是一种方法,可能使用,取决于您的权衡。其中一个折衷方案是,控制客户端的攻击者可能会使用泄露的哈希来验证自己
不要发明自己的加密协议。使用知名度高、经过测试的产品。如果可能,请使用现有(经过审查的)实现 你能详细说明一下吗?那是错误的。这意味着用户和服务器都不需要知道真正的密码。。。事实上,md5(password)在这里是一个密码,这使得它的长度固定且更可预测。我不确定您在这里是如何定义“错误”的,但是,是的,标准质询-响应身份验证的一个缺点是客户端和服务器有一个共享的秘密。如果您关心可预测性,那么将其设置为SHA512,对其添加盐,并将盐与挑战一起发送(盐不会增加保密性,只会增加计算复杂性)。可预测性与密码存储无关。。。系统妥协是不可能的。这个问题在这里并没有消失,但这个解决方案至少可以工作,并且不需要像Kerberos那样的第三方。这总是一种折衷。你能详细说明一下吗?那是错误的。这意味着用户和服务器都不需要知道真正的密码。。。事实上,md5(password)在这里是一个密码,而