AES_ENCRYPT
Sintassi
AES_ENCRYPT(str, str_chiave)
Spiegazione
AES_ENCRYPT()
e AES_DECRYPT()
permettono di criptare e decriptare i dati utilizzando l'algoritmo ufficiale AES (Advanced Encryption Standard),
precedentemente chiamato "Rijndael." La codifica utilizza una chiave di 128 bit, ma è possibile estenderla fino a 256 bit modificando il sorgente. E' stata decisa una lunghezza di 128 bit perché è molto più rapida e nella maggioranza dei casi è sufficientemente sicura.
AES_ENCRYPT()
cripta una stringa e restituisce una stringa binaria.
AES_DECRYPT()
decripta una stringa crittografata e restituisce la stringa originale. Gli argomenti in input possono essere di qualsiasi lunghezza. Se uno degli argomenti è NULL
, anche il risultato della funzione sarà NULL
.
Poiché AES è un algoritmo a livello di blocco, viene utilizzato un riempimento per le stringhe di lunghezza dispari, pertanto la lunghezza della stringa risultante può essere calcolata con la formula seguente:
16 x (trunc(lunghezza_stringa / 16) + 1)
Se AES_DECRYPT()
rileva dati non validi o un riempimento non corretto, restituisce NULL
. Tuttavia, è possibile che AES_DECRYPT()
restituisca un valore non-NULL
(probabilmente spazzatura) se i dati in input o la chiave non sono validi.
E' possibile utilizzare le funzioni AES per registrare dati criptati:
Esempi
INSERT INTO t VALUES (1,AES_ENCRYPT('testo','password'));