我想用os.urandom()
生成一个密码salt。
然后使用以下内容创建哈希:
hashed_pw = hashlib.pbkdf2_hmac('sha256', password.encode(), salt.encode(), 300000)
这很好,但我想在退出程序后也存储hash和salt以登录。
我目前使用csv文件存储密码/salt。
如果我现在用csv.DictReader
读取用户名的数据,salt的类型是str。
如果现在比较散列,则它不起作用,因为散列算法需要一个字节。
如果我使用salt.encode()
,它现在是一个字节,但与原始字节不同。
我怎样才能解决这个问题?
只有在生成一个随机字符串并保存到csv中,然后在哈希函数中对这两个字符串进行编码时,我才能实现这一点。
但我认为用os.urandom
作为盐更安全
感谢您的帮助:)
在
bytes
对象上使用.hex()
获得适合CSV的str
值,在该str
对象上使用.fromhex()
再次获得bytes
:输出:
相关问题 更多 >
编程相关推荐