2009-08-25 25 views
7

¿Hay alguna forma de calcular un hash SHA256 en Python 2.4? (Destaco: Python 2.4) Sé cómo hacerlo en Python 2.5, pero desafortunadamente no está disponible en mi servidor y no se realizará una actualización. Tengo el mismo problema que el tipo en la pregunta this, pero usando Python 2.4. Cualquier ayuda será apreciada.hash SHA256 en Python 2.4

EDITAR: Perdón, me refiero a SHA 256. Estaba demasiado apurado. Lo siento de nuevo.

Respuesta

10

Sí, puedes. Con Python 2.4, había un módulo SHA-1 que hace exactamente esto. Ver the documentation.

Sin embargo, tenga en cuenta que la importación de códigos desde este módulo causará Advertencias de depreciación cuando se ejecute con Python más reciente.

Ok, como el requisito se apretó para ser SHA-256, usar el módulo SHA-1 en la biblioteca estándar no es suficiente. Sugiero revisar pycrypto, tiene una implementación SHA-256. También hay versiones binarias de Windows para que coincidan con Pythons anteriores, siga los enlaces de Andrew Kuchlings old PyCrypto page.

+0

Si tiene contraseñas hash, no recomendaría usar SHA-1, nunca. Se ha roto y no se considera inseguro. El uso de MD5 para contraseñas hash también se considera inseguro. Si no puede acceder a las nuevas bibliotecas hash en versiones más recientes de Python, le recomendaría hacer una llamada al sistema a 'ssh-keygen' (en Linux) y leer en el archivo que crea. – MikeyE

+0

Es un poco exagerado decir "alguna vez", allá por 2009, cuando se escribió la pregunta y la respuesta, SHA1 estaba bien. Como referencia, el primer enfoque teórico para hacer que los hashes de SHA1 colisionen con Marc Stevens no se publicó hasta 2013. Pero sí: conozca sus valores hash y comprenda las implicaciones de seguridad de sus elecciones. –

+0

Te escucho. Cuando dije "alguna vez", lo que quise decir fue "siempre desde este momento en adelante". Pero, pensé que eso estaba implícito. Usted hace un buen punto. Creo que tu respuesta fue buena para cuando fue escrita. Tal vez podría ser revisado para estar actualizado con los tiempos? – MikeyE

8

Usted puede utilizar el módulo sha, si se quiere mantener la compatibilidad, puede importar esta manera:

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

El código publicado calcula SHA-1, y es inútil calcular SHA-256. – pts

Cuestiones relacionadas