Операции на хешах Python

У меня есть довольно странная проблема. Для Распределенной Хеш-таблицы я должен смочь сделать некоторые простые математические операции на хешах MD5. Они включают сумму (числовая сумма, представленная хешем) и операция по модулю. Теперь я задаюсь вопросом, какой лучший способ реализовать эти операции. Я использую hashlib для вычисления хешей, но так как хеши, которые я получаю, являются затем строкой, как я вычисляю с ними?

15
задан cdecker 24 April 2010 в 00:49
поделиться

1 ответ

Вы можете использовать метод 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

Edit :

Во втором случае на самом деле проще преобразовать, используя .encode ('hex') или binascii.hexlify :

>>> int(h.digest().encode('hex'), 16)
188041611063492600696317361555123480284L
>>> int(binascii.hexlify(h.digest()), 16)
188041611063492600696317361555123480284L
28
ответ дан 1 December 2019 в 02:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: