Hashing delle stringhe in Python

Mattepuffo's logo
Hashing delle stringhe in Python

Hashing delle stringhe in Python

Per effettuare l'hashing delle stringhe in Python, possiamo avvalerci di un modulo apposito: hashlib!

Il suo utilizzo è molto semplice, e ci mette anche a disposizione delle funzioni per capire cosa è supportato a sistema, e cosa è sicuramente supportato dal modulo.

Vediamo un esempio usando SHA256:

import hashlib
 
# ALGORITMI PRESENTI NEL SISTEMA
print(hashlib.algorithms_available)
# ALGORITMI PRESENTI NEL MODULO
print(hashlib.algorithms_guaranteed)
 
objHash = hashlib.sha256(b"CIAO!!!")
print(objHash.hexdigest())
 
sslObjHash = hashlib.new("DSA")
sslObjHash.update(b"CIAO!!!")
print(sslObjHash.hexdigest())

L'output sarà una cosa del genere:

$ python hashing.py

{'RIPEMD160', 'whirlpool', 'shake_128', 'sha', 'sha256', 'dsaWithSHA', 'SHA256', 'SHA1', 'blake2b', 'mdc2', 'MD4', 'ripemd160', 'sha384', 'sha512', 'MDC2', 'ecdsa-with-SHA1', 'sha1', 'DSA', 'sha3_224', 'SHA512', 'dsaEncryption', 'sha224', 'sha3_512', 'SHA', 'md4', 'sha3_256', 'shake_256', 'MD5', 'SHA224', 'sha3_384', 'SHA384', 'md5', 'DSA-SHA', 'blake2s'}

{'shake_128', 'sha256', 'sha3_224', 'sha224', 'sha3_512', 'blake2b', 'sha3_256', 'shake_256', 'sha384', 'sha512', 'sha3_384', 'sha1', 'md5', 'blake2s'}

006dac052a6d9d561cd676ca59cca53e3c1e5d12ca03304876bd0939eb484c37
88245f7038cf42c592441daeb1d6ae9a3c469834

Dividendo l'output in 4 blocchi:

  • visualiziamo gli algoritmi presenti a sistema
  • visualiziamo gli algoritmi presenti nel modulo
  • stampiamo l'hashing usando SHA256; per usare un altro algoritmo, basta che lo sostituite nella riga (ad esempio sha384 al posto sha256)
  • stampiamo l'hashing usando SSL

Ricordatevi che le funzioni di hashing voglio oggetti binari, e non stringhe (ecco cosa vuol dire quella b davanti alla stringa).

Enjoy!


Condividi

1 Commenti

  • Sergio

    Ciao esiste un modo per convertire qualsiasi hash in MD5 ? cioè ho un file, genero uno SHA256, poi ho bisogn di avere l' MD5 ma ho perso il file, posso risalirne dallo SHA256 o altri ? Tramite python, ovviamente Grazie

    23/03/2020

Commentami!