gpt4 book ai didi

django 密码哈希每次都不同

转载 作者:行者123 更新时间:2023-12-02 11:37:15 25 4
gpt4 key购买 nike

如果我使用 django 的 django.contrib.auth.hashers.make_password 的同一字符串创建哈希,我每次都会得到不同的哈希。我不明白这是如何合法的,因为据我所知,哈希函数每次都必须生成相同的哈希,因为根据定义它是一个函数。我错过了什么?

from django.contrib.auth.hashers import make_password
password = "helloworld"
h1 = make_password(password)
h2 = make_password(password)
print h1, h2

h1 = u'pbkdf2_sha256$20000$Tr6NV5MewXYl$X+sezT6WRqBwYmJR/RZmZHLP6/l6ntSaBke0RKU1/v0='

h2 = u'pbkdf2_sha256$20000$05rEmxChtXlI$NdZGfTKH+kqt1viuFng3GmvBp6eJcsstxV4JcDlBGIs='

我怀疑每次使用不同的算法进行哈希,因此哈希值也不同。我说得对吗?

最佳答案

由于 salt,您会看到不同的结果。简而言之,Django 在散列之前向密码添加一些随机字符串,即使对于相同的密码也可以获得不同的值。这使得 rainbaw tables 攻击是没有用的。实际上你在数据库中看到的并不是普通的哈希值,它的结构如下格式:<algorithm>$<iterations>$<salt>$<hash>

关于django 密码哈希每次都不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50018632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com