如何为bcrypt.hashpw设置盐?
salt = 'yhnqazolr123098765'
password = bcrypt.hashpw(password,salt)
repeatpassword = bcrypt.hashpw(repeatpassword,salt)
我在第二行遇到了错误。
ValueError at /register
Invalid salt
Request Method: POST
Request URL: http://127.0.0.1:8000/register
Django Version: 1.3.1
Exception Type: ValueError
Exception Value:
Invalid salt
Exception Location: /home/user1/djangoblog/blog/views.py in register, line 70
Python Executable: /usr/bin/python
Python Version: 2.6.6
Python Path:
['/home/user1/djangoblog',
'/usr/lib/python2.6',
'/usr/lib/python2.6/plat-linux2',
'/usr/lib/python2.6/lib-tk',
'/usr/lib/python2.6/lib-old',
'/usr/lib/python2.6/lib-dynload',
'/usr/local/lib/python2.6/dist-packages',
'/usr/lib/python2.6/dist-packages',
'/usr/lib/python2.6/dist-packages/gst-0.10',
'/usr/lib/pymodules/python2.6',
'/usr/lib/pymodules/python2.6/gtk-2.0']
该怎么办呢? 我需要设置一个默认的盐值,而不是每次都用随机的盐值。
2 个回答
4
盐的格式是:
$Version$log2(NumRounds)$salt
其中:
Version
是2
,0 <= log2(NumRounds) < 32
,salt
是一个22字节的base-64编码字符串。
我建议你使用 bcrypt.gensalt()
。没有必要自己提供盐。
2
我觉得,就像在这个项目页面里的例子一样,你需要类似这样的东西:
salt = bcrypt.gensalt()
password = bcrypt.hashpw(password, salt)
repeatpassword = bcrypt.hashpw(repeatpassword,salt)