Вы можете использовать метод hexdigest()
, чтобы получить шестнадцатеричные цифры, а затем преобразовать их в число:
>>> h = hashlib.md5('data')
>>> int(h.hexdigest(), 16)
188041611063492600696317361555123480284L
Если у вас уже есть вывод digest()
, вы можете преобразовать его в шестнадцатеричные цифры:
>>> hexDig = ''.join('%02x' % ord(x) for x in h.digest())
>>> int(hexDig, 16)
188041611063492600696317361555123480284L
Редактировать
Во втором случае конвертировать проще, используя .encode('hex')
или binascii.hexlify
:
>>> int(h.digest().encode('hex'), 16)
188041611063492600696317361555123480284L
>>> int(binascii.hexlify(h.digest()), 16)
188041611063492600696317361555123480284L