|
|
1
245
|
|
|
2
160
Raymond的答案对蟒蛇2来说很好(不过,你不需要abs(),也不需要10**8左右的parens)。然而,对于蟒蛇3,有一些重要的注意事项。首先,您需要确保您正在传递一个编码的字符串。如今,在大多数情况下,最好避开sha-1,转而使用sha-256之类的东西。因此,hashlib方法是:
如果您想改为使用hash()函数,重要的警告是,与Python 2.x不同,在Python 3.x中,hash(。请参见此处:
这意味着建议使用基于hash()的解决方案,该解决方案可以缩短为:
将仅在给定的脚本运行中返回相同的值:
因此,根据这在您的应用程序中是否重要(在我的应用程序),您可能需要坚持基于hashlib的方法。 |
|
|
3
11
为了完成JJC答案,在python 3.5.3中,如果您以这种方式使用hashlib,则行为是正确的:
|
|
|
4
5
从Python 3.10开始,将字符串散列为8个十六进制数字摘要的另一种快速方法是使用 shake.hexdigest(4) :
注意4而不是8,因为摘要的长度是作为参数给定的数字的两倍。 当然要注意散列冲突。 |