Хеш SHA256 в Python 2.4

Есть ли способ вычислить хэш SHA256 в Python 2.4? (Подчеркиваю: Python 2.4) Я знаю, как это сделать в Python 2.5, но, к сожалению, он недоступен на моем сервере, и обновление не будет выполнено. У меня та же проблема, что и у парня из этого вопрос, но с использованием Python 2.4. Любая помощь будет оценена.

РЕДАКТИРОВАТЬ: Извините, я имею в виду SHA 256. Я слишком торопился. Прости еще раз.


person hyperboreean    schedule 25.08.2009    source источник


Ответы (3)


Да, ты можешь. В Python 2.4 появился модуль SHA-1, который делает именно это. См. документацию.

Однако имейте в виду, что импорт кода из этого модуля вызовет DeprecationWarnings при запуске с более новым Python.

Хорошо, поскольку требования были ужесточены до SHA-256, использования модуля SHA-1 в стандартной библиотеке недостаточно. Я предлагаю проверить pycrypto, он имеет реализацию SHA-256. Существуют также двоичные выпуски Windows, соответствующие более старым Pythons, следуйте ссылкам на старой странице PyCrypto Эндрю Кучлингса.

person af.    schedule 25.08.2009
comment
Если вы хэшируете пароли, я бы никогда не рекомендовал использовать SHA-1. Он был взломан и не считается небезопасным. Использование MD5 для хеширования паролей также считается небезопасным. Если вы не можете получить доступ к новым библиотекам хеширования в более поздних версиях Python, я бы рекомендовал сделать системный вызов ssh-keygen (в Linux) и прочитать файл, который он создает. - person MikeyE; 07.09.2016
comment
Было бы немного преувеличением сказать, что еще в 2009 году, когда был написан вопрос и ответ, SHA1 был в порядке. Для справки: первый теоретический подход Марка Стивенса к конфликту хэшей SHA1 не был опубликован до 2013 года. Но да: знайте свои хэши и понимайте последствия вашего выбора для безопасности. - person af.; 30.09.2017
comment
Я слышу тебя. Когда я сказал «когда-либо», я имел в виду «всегда с этого момента времени вперед». Но я думал, что это подразумевалось. Вы правильно подметили. Думаю, ваш ответ был хорош для того момента, когда он был написан. Может быть, его можно было бы доработать, чтобы идти в ногу со временем? - person MikeyE; 01.10.2017

Вы можете использовать модуль sha, если вы хотите оставаться совместимым, вы можете импортировать его следующим образом:

try:
    from hashlib import sha1
except ImportError:
    from sha import sha as sha1
person tonfa    schedule 25.08.2009
comment
Опубликованный код вычисляет SHA-1, и вычислять SHA-256 бесполезно. - person pts; 05.01.2016

Версия hashlib с обратным переносом находится по адресу http://pypi.python.org/pypi/hashlib. и я просто скопировал новую версию hmac и разместил ее на http://pypi.python.org/pypi/hmac

person Laurence Rowe    schedule 09.10.2010