Можете ли вы применить sha256 два раза к одной строке? - PullRequest
0 голосов
/ 24 февраля 2019

Я выписал функцию:

print(hashlib.sha256(hashlib.sha256(Encode(s))).hexdigest())

Однако, похоже, есть следующая ошибка:

требуется объект, поддерживающий API буфера

Я полагаю, это потому, что при хешировании во второй раз вход не является байтовой формой, потому что он уже хеширован.

Как решить эту проблему и дважды хешировать одну строку?

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Как насчет этого кода (как предложил от james-k-polk )?

print(hashlib.sha256(hashlib.sha256(s.encode('ascii')).digest()).hexdigest())
0 голосов
/ 24 февраля 2019

Это работает, если вы хотите сделать это в одну строку

from hashlib import sha256 as h
print(h(h("your_string".encode()).hexdigest().encode()).hexdigest())

# Gives: c94c01dafc045892773d67dabb3da8feb925e2c48e0373eab922da49f7fd269c
# Encrypted once: e10207f241d66a8c5f8202ed9fc22b94c031850dd54d8b03fdd40db4cbde5bfc
...