Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python werkzeug.security生成\u密码\u哈希替代方案,无SHA-1_Python_Flask_Sha1_Werkzeug - Fatal编程技术网

Python werkzeug.security生成\u密码\u哈希替代方案,无SHA-1

Python werkzeug.security生成\u密码\u哈希替代方案,无SHA-1,python,flask,sha1,werkzeug,Python,Flask,Sha1,Werkzeug,我使用generate\u password\u hashfromwerkzeug.security对我的密码进行哈希和加密。我最近看到了werkzeug.security使用SHA-1,因为它不再那么安全了,我想要一个替代方案。如何在不依赖SHA-1的情况下散列密码 from werkzeug.security import generate_password_hash generate_password_hash(secret) 在generate_password_hash中使用SHA-

我使用
generate\u password\u hash
from
werkzeug.security
对我的密码进行哈希和加密。我最近看到了
werkzeug.security
使用SHA-1,因为它不再那么安全了,我想要一个替代方案。如何在不依赖SHA-1的情况下散列密码

from werkzeug.security import generate_password_hash
generate_password_hash(secret)

generate_password_hash
中使用SHA-1不易受攻击
,因为它仅用作PBKDF2哈希中的中间迭代步骤

当你像在PBKDF2中那样链接数不清的散列时,风险与某人纯粹出于偶然而破坏一个强密码是无法区分的

关于邮寄名单还有进一步的讨论

你是对的,HMAC的安全性在与SHA-1一起使用时仍然很好, HMAC-MD5甚至是安全的,信不信由你


采用
方法
参数自定义哈希的生成方式。默认值为
pbkdf2:sha1
。为PBKDF2传递不同的派生方法

generate_password_hash(secret, method='pbkdf2:sha512')
您还可以将迭代次数从默认值150000更改为更高的数目,代价是哈希速度较慢<代码>pbkdf2:sha1:200000


只要对哈希和迭代进行了很好的调优,就可以使用PBKDF2。或者,使用,它支持比Werkzeug更多的散列方法。有关使用哪些散列的讨论,请参阅Passlib。此示例演示如何将bcrypt与Passlib一起使用

pip install passlib bcrypt
from passlib.context import CryptContext
crypt_context = CryptContext(schemes=['bcrypt_sha256'])
crypt_context.hash(secret)