Criptazione Python
Da Hacknowledge.
Vedremo ora le più comuni funzioni per la criptazione.
N.B. Ogni algoritmo richiede l'importazione del modulo appropriato (import md5, import sha, import hmac, string)
Indice |
[modifica] MD5
Per criptare con md5 si procede in questo modo:
- creazione di un nuovo oggetto
- aggiornamento dell'oggetto
- criptazione vera e propria
La creazione di un nuovo oggetto avviene molto semplicemente con l'istruzione new()
import md5 m = md5.new()
Da ora, per aggiungere del testo da criptare all'oggetto, dobbiamo usare il metodo update
m.update("testo") m.update("ancora testo")
E infine, per avere la stringa criptata basta usare hexdigest()
m.hexdigest()
Ovviamente è consigliato salvare il risultato in una variabile per poterla usare
hash = m.hexdigest()
Riassumiamo in breve il tutto
import md5 m = md5.new() m.update("testo da criptare") test = m.hexdigest() print test
[modifica] SHA
Il funzionamento del modulo sha (ovviamente da importare per usarlo) è lo stesso identico di md5 (creazione con new, aggiornamento con update e criptazione con hexdigest). Vediamo quindi solo uno script riassuntivo
import sha s = sha.new() s.update("testo da criptare") test = s.hexdigest() print test
In questi esempi ho usato hexdigest() per comodità, ma esiste anche digest(). Questo perchè digest() potrebbe tornare caratteri non-ascii e null byte.
[modifica] HMAC
L'uso del modulo HMAC è esattamente come i due sopra descritti, quindi un codice di esempio sarebbe
import hmac h = hmac.new() h.update("testo da criptare") test = h.hexdigest() print test
[modifica] ROT13
L'esempio in un codice di uso del rot 13:
import string testo = "testo_da_crittare" testo = testo.encode('rot13')/testo = testo.encode('rot13')

