在Python中使用Bcrypt散列密码时获取错误

时间:2017-09-20 08:55:41

标签: python hash bcrypt

我在使用Python中的Bcrypt散列痛苦文本密码时遇到错误。我在解释下面的错误。

Traceback (most recent call last):
  File "hash.py", line 3, in <module>
    hashed = hashpw(plaintext_password, gensalt(log_rounds=13))
TypeError: gensalt() got an unexpected keyword argument 'log_rounds'

我的代码如下。

from bcrypt import hashpw, gensalt
plaintext_password = 'subhra123@'
hashed = hashpw(plaintext_password, gensalt(log_rounds=13))
print hashed

这里我需要哈希密码。

2 个答案:

答案 0 :(得分:2)

您的错误来自log_rounds,您只需使用该号码。这是一个例子:

hashed = hashpw(plaintext_password, gensalt(13))

来自官方文档:

  

可调节的工作因素   bcrypt的功能之一是可调节的对数工作因子。要调整工作因子,只需将所需的轮数传递给bcrypt.gensalt(rounds = 12),默认为12):

工作演示:

import bcrypt
password = b"super secret password"
# Hash a password for the first time, with a certain number of rounds
hashed = bcrypt.hashpw(password, bcrypt.gensalt(14))
# Check that a unhashed password matches one that has previously been
#   hashed
if bcrypt.hashpw(password, hashed) == hashed:
    print("It Matches!")
else:
    print("It Does not Match :(")

Here是指向文档的链接,指定如何使用此文档。

希望这有帮助!

答案 1 :(得分:2)

我想要使用gensalt(13)gensalt(rounds=13)代替gensalt(log_rounds=13)