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')
Strumenti personali