- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema criptazione stringhe PHP
-
Problema criptazione stringhe PHP
Salve a tutti, premetto che non sono un esperto in materia di criptazione.
Ho la necessità di criptare delle stringhe di testo da inserire successivamente in un database MYSQL.
Per criptare tali stringhe (si tratta dei dati personali degli utenti registrati) utilizzo questo script:// cripta function mc_encrypt($encrypt, $mc_key) {[INDENT]$passcrypt = trim(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $mc_key, trim($encrypt), MCRYPT_MODE_ECB)); $encode = base64_encode($passcrypt);[/INDENT] [INDENT]return $encode;[/INDENT] } // decripta function mc_decrypt($decrypt, $mc_key) {[INDENT]$decoded = base64_decode($decrypt); $decrypted = trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $mc_key, trim($decoded), MCRYPT_MODE_ECB)); return $decrypted;[/INDENT] } ```e la chiave usata è:[PHP]$key ="ce278f459c8aI4bcKf8f4344";[/PHP] Il problema è che alcune stringhe non vengono decriptare correttamente, ad esempio: la parola "Lorenzo" diventa "P3jZl/wCBnJ3tTQCeqa65jBtaRfeAEIG6bW0vnjwyA==" e una volta decriptata diventa "?¡~g1øí×Øâüý<.l*Tp87$ $!9q}" ; mentre "loreamd93" diventa "emOqOCNl0Tr8OUu/4LZJSiPJwgEtt2D/s34M/FekJdQ=" e ritorna "loreamd93" una volta decriptata. La versione PHP di Apache è 5.3.13. Qualcuno ha idea di dove sia il mio errore? Dove sto sbagliando? Vi ringrazio anticipatamente :)
-
La cosa migliore da fare non è decrittare secondo me, ma è Crittare nuovamente e fare poi match tra le versioni crittate.
Se usi sempre lo stesso modo di "crittazione" il confronto dovrebbe darti match corretto se sono giuste.
-
Ciao loreamd93,
se rimuovi i trim funziona correttamente.