django中的摘要式身份验证

时间:2012-05-17 11:50:12

标签: python django authentication hash digest

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

密切关注上述定义,我在Javascript中使用CryptoJS.HmacSHA256("password", "key")将信息发送到django服务器,现在的问题是:

我需要在服务器中使用相同的逻辑检查,但django已经以自己的格式散列了密码,例如使用pbkdf2_sha256

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

2 个答案:

答案 0 :(得分:1)

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

你可以做的是(例如):

  1. 创建一个链接到用户的新模型,该模型具有共享密钥和令牌
  2. 创建您自己的身份验证后端,该后端接受签名值,验证签名值,然后将用户登录到
  3. 我使用this article中的详细信息来实现算法。即使您没有使用此方法,您仍然需要创建自己的自定义authentication backend

答案 1 :(得分:-1)

  • AES不是哈希算法。这是一种加密算法。
  • 您可以使用SHA1或MD5等散列算法。