Articolo scritto da Simone Ramacci “Simosito” e pubblicato prima su python-it.org e poi qui per sua gentile concessione.
“ Oggi vi voglio segnalare l’implementazione pure-python di due algoritmi abbastanza celebri: Blowfish e Rijndael (per gli amici AES).
Grazie all’impegno di Ivan Voras è possibile utilizzare Blowfish per testi di lunghezza arbitraria.
Esempio (test1a.py)
import blowfish from hashlib import sha256 testo="Ciao, come va?" cipher = blowfish.Blowfish(sha256('key').digest()) print('Cripto') #inizializzo CTR cipher.initCTR() ctxt=cipher.encryptCTR(testo) print('DeCripto') #idem cipher.initCTR() txt=cipher.decryptCTR(ctxt) print(txt)
Questo semplice codice mostra abbastanza bene l’uso di questo modulo.
È importante ricordarsi di inizializzare sempre CTR altrimenti si rimane per mesi a sbattere la testa su un errore di encoding molto antipatico.
Jeffrey Clement ci porta invece un simpatico modulo per utilizzare AES
Esempio (test2a.py)
import rijndael as r from hashlib import sha256 key=sha256('key').digest() testo="Ciao, come va?" print("Cripto") ctxt=r.EncryptData(key,testo) print("DeCripto") txt=r.DecryptData(key,ctxt) print(txt)
Questo semplice codice mostra abbastanza bene l’uso di questo modulo.
Come si può notare non c’è bisogno di nessuna inizializzazione.
Performances
Per questo test è stato usato un file di 66926 byte contenente caratteri Unicode, il Romeo e Giulietta di Bandello, che ispirò l’opera di Shakespeare.
Codifica e decodifica
Algoritmo | real time |
user time |
Blowfish | 0m2.812s | 0m2.804s |
Rijndael | 0m10.576s | 0m10.381s |
Blowfish+psyco | 0m1.440s | 0m1.300s |
Rijndael+psyco | 0m2.400s | 0m2.344s |
Codifica
Algoritmo | real time |
user time |
Blowfish | 0m1.477s | 0m1.416s |
Rijndael | 0m5.163s | 0m5.040s |
Blowfish+psyco | 0m0.693s | 0m0.668s |
Rijndael+psyco | 0m1.216s | 0m1.200s |
Il computer utilizzato per il test è un dual core 1.8 GHz con 2 Gb di RAM (24.5 % già occupato).
Nello scegliere uno dei due algoritmi si tenga presente che forniscono livelli di sicurezza differenti.”
Grazie per aver ripreso il mio articolo!
Figurati, te l’avevo detto che l’avrei inserito!
Ciao!