Werkzeug 密码加密

Werkzeug password encryption

提问人:Parth Pawar 提问时间:8/19/2023 最后编辑:Parth Pawar 更新时间:8/20/2023 访问量:71

问:

我正在尝试使用 werkzeug 库加密密码。我不知道为什么我尝试加密的每个密码都会得到 pbkdf2:sha256:600000

这是我的代码

import werkzeug
# from hashlib import pbkdf2_hmac

x = werkzeug.security.generate_password_hash(password="123456", method="pbkdf2:sha256", salt_length=8)
print(x)

这是我得到的输出 pbkdf2:sha256:600000$hbZ2Diwi$228e3cae24487c6a59de2947dda1e86312a4cfe451d024c53d56514ea41d7953 我只想在 pbkdf2:sha256:600000 之后返回字符串,但我不想切片字符串。

安全 加密 哈希 werkzeug websecurity

评论

0赞 Maarten Bodewes 8/20/2023
Stack Overflow 上提问之前,请使用官方/参考文档,我们不喜欢浪费时间。

答:

0赞 Maarten Bodewes 8/20/2023 #1

好吧,这至少花了几秒钟才抬头。

你可以根据官方文档使用这个单独的函数,你的函数:

...pbkdf2,默认值。参数为 hash_method 和 iterations,默认值为 .看。pbkdf2:sha256:600000hashlib.pbkdf2_hmac()

甚至提供了链接。您可以通过调用而不是 来返回基数 64 而不是十六进制。它应该返回相同的值(当然,给定相同的迭代计数和盐值)。b64encode(dk).decode()dk.hex()

评论

0赞 Parth Pawar 8/20/2023
我尝试了 hashlib.pbkdf2_hmac(),但我不知道为 salt 参数传递什么值。
0赞 Maarten Bodewes 8/20/2023
对于每个哈希值,盐值应该是唯一的。您可以使用任何加密随机字节数组,比如 16 个字节。您需要将此值与哈希一起保留,或者具有一个以其他方式保留但唯一的值。如果没有盐,生成的哈希(或部分加密)很容易受到预计算攻击、彩虹表等的攻击。