• User Newbie

    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 :)

  • Admin

    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.


  • ModSenior

    Ciao loreamd93,
    se rimuovi i trim funziona correttamente.