Функция Python SHA1 DECODE - PullRequest
       12

Функция Python SHA1 DECODE

0 голосов
/ 04 октября 2011

Не могу найти, как декодировать строку, закодированную в sha1. Я удивлен, что не могу найти простую функцию в документах Python или Google, делающих декодирование sha1. Я сдаюсь. Мне нужна помощь ..

1 Ответ

17 голосов
/ 04 октября 2011

SHA1 - алгоритм хеширования. Хеширование является односторонним, что означает, что вы не можете восстановить входные данные с выхода для любой нетривиальной хэш-функции. Простым примером односторонней хэш-функции будет сложение всех цифр числа. 1234 будет хешировать до 1 + 2 + 3 + 4 = 10, но так же будет 4321, 1900, 5050 и многие другие числа. Учитывая только значение хеша 10, вы не можете сказать, был ли ввод 1234 или 5050, потому что информация была потеряна.

Вот графический пример:

enter image description here

Как видите, и John Smith, и Sandra Dee сопоставлены с 02. Это означает, что вы не можете восстановить , имя которого было хешировано, только 02.

Хеширование полезно, потому что оно сопоставляет любой объем данных с выходом фиксированного размера, и, в отличие от приведенных выше примеров, чрезвычайно трудно найти два ввода, которые хэшируют тот же вывод. Для потребовалось более 6 500 процессорных лет, чтобы найти только одну пару входов для SHA-1 с одинаковым хешем.

Следовательно, если hash(A) == hash(B), то вы можете быть уверены, что A == B. Если вы копируете огромный файл, и хэши как оригинала, так и копии совпадают, то вы можете быть уверены, что файл не поврежден.

...