无法使hash()函数在Python3.2.2中工作

2024-06-24 13:21:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我对这个代码有问题:

print('insert password below to get a hash')
pass = int(input('Input passowrd> ')

hash(pass)
input()

我只是在尝试运行这个时遇到了一个错误,我尝试了pythonshell中的help(hash),阅读文档,尽可能多的google,但是我不能让它工作:-/

有什么问题吗?在


Tags: to代码inputget错误passpasswordhash
3条回答

pass是一个语句,在Python中不能有具有该名称的变量。在

>>> pass = 1
SyntaxError: invalid syntax
>>> 

您的代码已经编写好了,但可能并不是您所期望的那样(整数的散列值就是整数本身)。试试这个:

print('insert password below to get a hash')
pass_str = input('Input password: ')
h = hash(pass_str)

另外,如果您要存储密码的哈希值并希望它是安全的,那么一定要使用加密性强的哈希值,例如在hashlib module中找到的哈希值:

^{pr2}$

我想你有两个问题。


首先,pass-word通常不是整数,因此您对^{{cd1>}的调用很可能引发异常。

您可能需要:

pass = input('Input password> ')

其次,^{}函数为对象返回hash code以进行快速比较。它不是cryptographic hash function。考虑使用一些类似于常用的MD5算法,或者(最好)一些更安全的方法,比如SHA-2系列算法。

您可以使用^{}生成加密安全的哈希。示例:

^{pr2}$

根据您的需要,您还可能需要考虑使用salt进一步保护密码。

相关问题 更多 >