Использование хэш-суммы sha256 двоичного числа для создание сид фразы на python
Для генерации сида (12 слов) надо взять хэш (sha256) 128-битного бинарного числа, но тут оно воспринимается как текст. Поэтому итоговая хэш сумма не та, что мне нужна. Как реализовать это на питоне? Например, хэш 101 как текста это 16dc368a89b428b2485484313ba67a3912ca03f2b2b42429174a4f8b3dc84e44. Но значение хэша для 101 как битовой величины это c19a797fa1fd590cd2e5b42d1cf5f246e29b91684e2f87404b81dc345c7a56a0, именно это значение мне и нужно получить с помощью кода.
import hashlib
def calculate_sha256_binary(binary_number):
binary_string = str(binary_number)
byte_data = binary_string.encode()
sha256_hash = hashlib.sha256(byte_data).hexdigest()
return sha256_hash
print(calculate_sha256_binary((101)))
Увидеть это можно тут: https://cryptii.com : 
Заранее спасибо
Ответы (1 шт):
Прежде всего хочу уточнить один момент, многие могли подумать что 101 это 5 но, проведя экперимент с онлайн калькулятором я выяснил что это 160 т.е:
0b10100000
Далее обратившись к документации я нашел пример использования библиотеки:
import hashlib m = hashlib.sha256() m.update(b"Nobody inspects") m.update(b" the spammish repetition") m.digest() b'\x03\x1e\xdd}Ae\x15\x93\xc5\xfe\\\x00o\xa5u+7\xfd\xdf\xf7\xbcN\x84:\xa6\xaf\x0c\x95\x0fK\x94\x06' m.hexdigest() '031edd7d41651593c5fe5c006fa5752b37fddff7bc4e843aa6af0c950f4b9406'
Таким образом можно написать код так:
import hashlib
m = hashlib.sha256()
m.update(bytes([160])) # 160 или int('10100000', 2)
print(m.hexdigest())
и мы получим то что требовалось:
c19a797fa1fd590cd2e5b42d1cf5f246e29b91684e2f87404b81dc345c7a56a0