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!
python hashing hashlib
1 Commenti
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