首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我能用Werkzeug.security的check_password_hash解密Bcrypt哈希密码吗?

我能用Werkzeug.security的check_password_hash解密Bcrypt哈希密码吗?
EN

Stack Overflow用户
提问于 2017-01-26 00:45:03
回答 1查看 16.2K关注 0票数 0

是否可以使用以下命令来解密之前的哈希密码:

Bcrypt - $2b$12$

在使用时:

from werkzeug.security import generate_password_hash, check_password_hash

我假设,如果我可以指定werkzeug.security应该使用哪种散列算法来检查密码,那么即使它们是不同的工具,它也会起作用。

也许我太天真了。

我像这样加密了密码:

代码语言:javascript
运行
复制
application = Flask(__name__)
bc = Bcrypt(application)
password=bc.generate_password_hash(data['password_input'])

但是想要这样解密:

代码语言:javascript
运行
复制
application = Flask(__name__)
from werkzeug.security import generate_password_hash, check_password_hash
if check_password_hash(user.password, password):
    pass

样本(虚拟)哈希:

代码语言:javascript
运行
复制
$2b$12$98WSJfIg.YkR/Bn469IX4OlOCJx.HMWKxR8NysSynGa8QHf/4rawq

我会使用Bcrypt库,但由于http://stackoverflow.com/questions/41854768/flask-bcrypt-attributeerror-module-object-has-no-attribute-ffi-deployed的原因,我无法让它与Elastic Beanstalk一起工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-26 00:51:47

不你不能这么做。这就是首先使用Bcrypt加密密码的意义所在。如果您能够从散列中恢复密码,那么数据库的任何破坏都将导致用户的凭据被访问,而散列并不比以明文存储密码更好。有关密码散列here的更多信息,请参阅。

您所能做的就是接受新的密码尝试,对其进行散列,并将散列与您已知的散列进行比较。check_password_hash不能处理Bcrypt哈希,因此您需要使用bcrypt.hashpw来处理

代码语言:javascript
运行
复制
import bcrypt
isSamePassword = bcrypt.hashpw(new_password, stored_hash)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41857055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档