#python #sha1 #decoding
#python #sha1 #декодирование
Вопрос:
Я не могу найти, как декодировать строку, закодированную в sha1. Я удивлен, что не могу найти простую функцию в документах python или Google, выполняющую декодирование sha1. Я сдаюсь. Мне нужна помощь..
Комментарии:
1. Вы не очень старались. Если ваша первая попытка поиска не сработала, попробуйте другие варианты. Например, посмотрите, что появляется первым, когда вы Google «python sha1». Затем посмотрите на «устаревшее» предупреждение и вместо этого прочитайте документы для рекомендуемого модуля. Обычно я бы не стал публиковать комментарий со словами «просто погуглите», но, поскольку вы прошли часть пути и сдались, я просто призываю вас попробовать еще раз. Вы можете ее найти.
2. И теперь, когда я еще раз подумал, я понимаю, что вы не можете ее декодировать. Такие вещи являются односторонними хэшами.
Ответ №1:
SHA1 — это алгоритм хеширования. Хеширование является односторонним, что означает, что вы не можете восстановить входные данные из выходных данных для любой нетривиальной хеш-функции. Простым примером односторонней хэш-функции было бы сложение всех цифр числа. 1234
было бы хэшировать 1 2 3 4 = 10
, но так же было бы 4321
, 1900
, 5050
, и многие другие числа. Учитывая только хэш-значение 10
, вы не можете определить, был ли ввод 1234
или 5050
потому, что информация была потеряна.
Вот графический пример:
Как вы можете видеть, оба John Smith
и Sandra Dee
сопоставлены 02
. Это означает, что вы не можете восстановить, какое имя было только хэшировано 02
.
Хэширование полезно, поскольку оно сопоставляет любой объем данных с выводом фиксированного размера, и, в отличие от приведенных выше примеров, чрезвычайно сложно найти два входа, которые хэшируют один и тот же вывод. Потребовалось более 6500 процессорных лет, чтобы найти только одну пару входных данных для SHA-1, которые имеют одинаковый хэш.
Поэтому, если hash(A) == hash(B)
, то вы можете быть уверены, что A == B
. Если вы копируете огромный файл, а хэши как оригинала, так и копии совпадают, то вы можете быть уверены, что файл не поврежден.