2011-01-06 26 views
10

256ビット出力(long int)のハッシュ関数が必要です。数値出力のPython 256bitハッシュ関数

最初に私はhashlibからSHA256を使うことができると思っていましたが、文字列出力があり、計算には数字が必要です。

32バイト文字列をlong型に変換することもできますが、何も見つかりませんでした。 構造体にはアンパック関数がありますが、これは8バイトのlong型に対してのみ機能し、long型では機能しません。

答えて

17

方法について:

>>> import hashlib 
>>> h = hashlib.sha256('something to hash') 
>>> h.hexdigest() 
'a3899c4070fc75880fa445b6dfa44207cbaf924a450ce7175cd8500e597d3ec1' 
>>> n = int(h.hexdigest(),base=16) 
>>> print n 
73970130776712578303406724846815845410916448611708558169000368019946742824641 
1

のpython 3.xの更新

import hashlib 
value = 'something to hash' 
t_value = value.encode('utf8') 
h = hashlib.sha256(t_value) 
h.hexdigest() 
n = int(h.hexdigest(),base=16) 
print(n)