Criptarea AES folosind chei de 128,192 si 256 biti in PHP
11Poate multi dintre voi doresc un algoritm de criptare mai greu de decriptat(aproape imposibil) sau poate pur si simplu v-ati saturat sa folositi functiile ce pot fi decriptate foarte usor. De asemenea, desi md5() este o functie destul de buna pentru hashuri , datorita definitiei ei este ireversibila.
Pentru inceput ce este AES?
AES (de la Advanced Encryption Standard – in limba engleza, Standard Avansat de Criptare), cunoscut si sub numele de Rijndael, este un algoritm standardizat pentru criptarea simetrica, pe blocuri, folosit astazi pe scara larga in aplicatii si adoptat ca standard de organizatia guvernamentala americana Standardul oficializeaza algoritmul dezvoltat de doi criptografi belgieni, Joan Daemen si Vincent Rijmen si trimis la NIST pentru selectie sub numele Rijndael.
De ce avem nevoie?
Este simplu, ne vom folosi de clasa wCrypt_AES.
Exemple de folosire
include('wCrypt_AES.php'); $aes = new wCrypt_AES; $cheie = "parola"; $text = "text de criptat"; $criptat = $aes->AESEncrypt($text,$cheie,256); //poate fi 128,192,256 echo $criptat; echo $aes->AESDecrypt($criptat,$cheie,256); //poate fi 128,192,256
Simplu nu? 😀
stiu ca in mysql aes e cea mai sigura si eficienta metoda de criptare.
Felicitari, dar ceva mai rafinat ( :)) ) vreun Eliptic Curve nai ? 😛
Cam sarac articolul, desi este destul de important. Care sunt diferenetele dintre aceasta criptare si obisnuita md5(), avantaje dezavantaje. De ce una si nu celalta ?
md5 este algoritm de hash adica nu se poate afla stringul initial care a fost folosit sa realizeze hash’ul
aes e algoritm de cryptare cu ajutorul unei chei poti encripta/decripta mesajul dorit
Articolul nu a avut nevoie de explicatii suplimentare pentru ca am considerat ca o persoana ce doreste sa aleaga aceasta metoda de stocare a informatiilor va cauta metoda de implementare a acestuia si nu detalii informatice.
Oricum daca esti interesat putem raspunde la intrebari, oarecum scurt.
Dupa cum bine stim nu putem compara md5 cu AES pentru ca unul este un algoritm de creare a unui hash iar celalalt de criptare. Diferenta consta in reversibilitatea algoritmului(revenirea la textul initial), ce in cazul hashurilor este aproape imposibil.
Practic algoritmul AES este complet reversibil, doar in momentul in care este cunoscuta cheia de criptare.Evident acest lucru il putem considera si un dezavantaj in anumite situatii.
Marele dezavantaj al hashurilor md5() il reprezinta coliziunile ce pot avea loc , astfel exista posibilitatea ca doua texte necriptate trecute prin hashul md5 sa rezulte acelasi hash.Astfel nu este indicat in anumite situatii,desi este folosit la scara larga de majoritatea sistemelor neguvernamentale.
Deoarece AES este cel mai puternic algoritm de criptare la ora actuala, aprobat de NSA ca fiind cel mai indicat pentru protejarea informatiilor guvernamentale putem spune ca este cel mai indicat pentru stocarea informatiilor criptat, decriptarea lor putand fi posibila in orice moment.
Unul dintre dezavantaje il poate reprezenta marirea dimensiunii textului criptat.
Puteti gasi informatii suplimentare pe Wikipedia unde este prezentat algoritmul , de asemenea articolul aceasta explica in detaliu implementarea acestuia.
Putem cripta cu AES si fara clasa ta.Daca avem mcrypt.
Da intradevar, ca o completare si mai multe detalii despre acest aspect :
http://php.net/manual/en/book.mcrypt.php
[…] flashuri folosesc algoritmul de criptare AES, cu o cheie de 256 biti pentru a proteja informatiile sensibile. Vulnerabilitatea ce afecteaza flashurile KingSton, SanDisk […]
deci practic tot ce ai facut este sa dai copiezi munca unuia si sa faci o arhiva. vad ca nu ai contribuit cu nimic.
Este foarte simplu sa zici ca Andrei nu a contribuit cu nimic fara sa stii macar despre ce vorbesti. Criptografia presupune in primul rand multa matematica, care nu poate fi inteleasa in timpul liceului datorita complexitatii ei. Este si normal ca omul sa se inspire si sa invete din conceptele altora dar asta nu inseamna ca nu a facut nimic.
Iti sugerez sa lasi criticele deoparte si sa apreciez ce a facut si faptul ca a pus la dispozitia noastra aceste clase.
Si unde am precizat ca ar fi fost scris de mine? Tu daca vei transforma algoritmul intr-un alt limbaj de programare nu tot furt se cheama? Cu ce ai contribuit tu la el? 😀