質問

かなり奇妙な問題があります。分散ハッシュテーブルの場合、MD5ハッシュで簡単な数学操作を行うことができる必要があります。これらには、合計(ハッシュで表される数値)とモジュロ操作が含まれます。今、私はこれらの操作を実装する最良の方法が何であるか疑問に思っています。ハッシュを計算するためにハシュリブを使用していますが、ハッシュが得られるので、ひもであるので、どうすれば計算できますか?

役に立ちましたか?

解決

使用できます hexdigest() 16進数桁を取得し、それらを数値に変換する方法:

>>> h = hashlib.md5('data')
>>> int(h.hexdigest(), 16)
188041611063492600696317361555123480284L

すでに出力がある場合 digest(), 、それを16進数桁に変換できます。

>>> hexDig = ''.join('%02x' % ord(x) for x in h.digest())
>>> int(hexDig, 16)
188041611063492600696317361555123480284L

編集:

2番目のケースでは、実際に使用して変換する方が簡単です .encode('hex') また binascii.hexlify:

>>> int(h.digest().encode('hex'), 16)
188041611063492600696317361555123480284L
>>> int(binascii.hexlify(h.digest()), 16)
188041611063492600696317361555123480284L
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top