将哈希密码转换为字符串werkuzeug python

2024-09-28 11:41:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Werkzeug进行密码哈希,这样用户输入的密码将是安全的(至少)。在

假设我的申请如下:

当用户登录时,我将使用check_password_hash,然后在内部登录该用户。在

用户登录后,我想向他们显示他们的密码。在

我遇到的问题是:

如何将哈希密码转换回字符串以向用户显示其密码?在

我的代码如下:

>>> import werkzeug.security as ws
>>> ws.generate_password_hash('abcdefg')
'pbkdf2:sha1:1000$fYAXLNA6$637528ae2fa195304c328d585e805b164f1c718f'
>>> ws._hash_internal('pbkdf2:sha1:1000', 'fYAXLNA6', 'abcdefg')
('637528ae2fa195304c328d585e805b164f1c718f', 'pbkdf2:sha1:1000')

现在如何将“6375…”转换回“abcdefg”?在

我可以访问数据库和所有其他需要的东西。基本上我是管理员!在

注意:我不能使用用户在登录时输入的密码。我只能使用数据库中的密码。在


Tags: 字符串代码用户import数据库密码wscheck
2条回答

使用哈希时,我们无法获取原始文本。通常所有的密码都存储为散列值,以使密码私有(只有用户知道)。所有服务器都实现了这一点。如果你想找回密码,那么你应该使用对称密钥加密。在客户端和服务器之间共享密钥的情况下,(但这是一个非常糟糕的做法)最好使用哈希。在

After the user is logged in, I want to show them their password.

散列密码的全部目的和原因是你永远不能这样做。不是你,不是别人。在

如果有人有权访问或盗用密码列表的数据库,那么将哈希值转换回原始密码确实非常昂贵。你需要一百万年来破解和撤销一个密码。在

相关问题 更多 >

    热门问题