7
votes

SHA256 HASH en Python 2.4

Y a-t-il une façon de calculer un hachage SHA256 à Python 2.4? (Je souligne: Python 2.4) Je sais comment le faire à Python 2.5 mais malheureusement, il n'est pas disponible sur mon serveur et une mise à niveau ne sera pas effectuée. J'ai le même problème que le gars à Ce question, mais en utilisant Python 2.4.


0 commentaires

3 Réponses :


10
votes

Oui, vous pouvez. Avec Python 2.4, il y avait un module SHA-1 qui fait exactement cela. Voir La documentation .

Cependant, gardez à l'esprit que l'importation de code à partir de ce module entraînera des dépendons d'accompagnement lorsqu'il est exécuté avec de nouveaux python.

OK, car l'exigence était resserrée d'être SHA-256, l'utilisation du module SHA-1 dans la bibliothèque standard ne suffit pas. Je suggérerais de vérifier PYCRYPTO , il a une implémentation SHA-256. Il existe également des versions binaires Windows pour correspondre aux pythons plus anciens, suivez les liens d'Andrew Kuchlings Old Pycrypto Page .


3 commentaires

Si vous récupérez des mots de passe, je ne vous recommanderais pas d'utiliser SHA-1, jamais. Cela a été fissuré et n'est pas considéré comme insécurisé. L'utilisation de mots de passe MD5 sur HASH est également considérée comme non sécurisée. Si vous ne pouvez pas accéder aux nouvelles bibliothèques de hachage dans des versions plus récentes de Python, je vous recommande de créer un appel système à «SSH-Keygen» (sur Linux) et de lire dans le fichier qu'il crée.


C'est un peu exagéré de dire "toujours", de retour en 2009 lorsque la question et la réponse ont été écrites SHA1 était ok. Pour référence, la première approche théorique de la fabrication de SHA1 Hashes Collide par Marc Stevens n'a pas été publiée avant 2013. Mais oui: connaissez vos hatumes et comprenez les implications de votre choix de vos choix.


Je t'entends. Quand j'ai dit "toujours", ce que je voulais dire était "toujours à partir de ce moment en avant". Mais, je pensais que c'était impliqué. Vous faites un bon point. Je pense que votre réponse était bonne pour quand elle a été écrite. Peut-être que cela pourrait être révisé pour être debout avec les temps?



8
votes

Vous pouvez utiliser le module SHA CODE>, si vous souhaitez rester compatible, vous pouvez l'importer comme suit:

try:
    from hashlib import sha1
except ImportError:
    from sha import sha as sha1


1 commentaires

Le code affiché calcule SHA-1 et il est inutile de calculer SHA-256.