1

据我所知,在摘要身份验证中,客户端使用密码和服务器提供的随机值作为输入值进行不可逆计算。结果被传输到执行相同计算的服务器,如果客户端到达相同的值,则对客户端进行身份验证。由于计算是不可逆的,窃听者无法获得密码。

留意上面的定义,我用CryptoJS.HmacSHA256("password", "key") Javascript将信息发送到django服务器,现在问题是:

我需要在服务器中使用相同的逻辑进行检查,但 django 已经以自己的格式对密码进行了哈希处理,例如使用pbkdf2_sha256.

我应该使用像AES这样的可逆算法吗?我认为不可能破解 django 的哈希算法并为客户端编写相同的算法?

4

2 回答 2

1

您为什么要尝试以这种方式进行身份验证?您不能为此使用 djangos 默认身份验证。

你可以做的是(例如):

  1. 创建一个与用户关联的新模型,该模型具有共享密钥和令牌
  2. 创建您自己的身份验证后端,该后端接受签名值,验证签名值,然后将用户登录

我使用本文中的细节来实现算法。即使您不使用此方法,您仍然需要创建自己的自定义身份验证后端

于 2012-05-17T12:21:13.803 回答
-1
  • AES 不是散列算法。是一种加密算法。
  • 您可以使用 SHA1 或 MD5 等散列算法。
于 2012-05-17T12:09:05.183 回答