Visualizzazione risultati 1 fino 8 di 8

Discussione: Criptare in caratteri alfanumerici una stringa con mcrypt_encrypt

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito Criptare in caratteri alfanumerici una stringa con mcrypt_encrypt

    Buonasera. Ho l'esigenza di criptare una stringa in formato alfanumerico tramite la funzione mcrypt_encrypt AES 256bit.
    Questo è il mio codice:

    Codice PHP:
    $secret_key = "09be3e2ce39c84b5c04bfbba090b63bc";
    $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_RAND);

    function
    encrypt($src){ global $iv, $secret_key;
    return
    mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $secret_key, $src, MCRYPT_MODE_CBC, $iv);
    }

    function
    decrypt($src){ global $iv, $secret_key;
    return
    mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $secret_key, $src, MCRYPT_MODE_CBC, $iv);
    }
    Purtroppo non produce una stringa alfanumerica ma una serie di caratteri non comprensibili.

    Dove sbaglio?

    EDIT: Usando la base64 ottengo ciò che voglio ma decriptando la stringa ottengo caratteri non voluti.
    EDIT2: Ho risolto utilizzando: trim($var, "\0");
    Ultima modifica di miki92 : 08-02-2015 alle ore 21.03.47
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Scusate l'UP ma non mi è più permesso modificare il post.

    Credevo che il codice funzionasse invece se utilizzo le funzioni in due pagine diverse il testo criptato, che poi salvo in base64 nel database, non funziona.

    Credo che il problema sia qui:
    Codice PHP:
    $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_RAND);
    E più specificatamente nella parte "MCRYPT_RAND" che creandomi un numero casuale mi frega la decriptazione... ho provato a mettere un numero io (tipo 8 / 12 / 25 / 32) ma ricevo un risultato bianco.

    Chi mi aiuta a capire dove sbaglio?
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Credo proprio che debba memorizzare anche l'iv nel database e passarlo alla funzione di decrittazione.

    Sì, dai uno sguardo qua: http://php.net/manual/en/function.mc...e-iv.php#40434
    Puoi preporlo al cipertext visto che è di lunghezza fissa.
    Ultima modifica di karl94 : 16-02-2015 alle ore 17.33.03

  4. #4
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Se non sbaglio ho già provato quel codice che trovai già in un blog tuttavia tutti gli esempi che ho trovato su google non hanno prodotto risultati soddisfacenti inoltre non posso memorizzare anche l'iv nel database.
    Apprezzi l'aiuto? Offrimi un caffè!

  5. #5
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    non posso memorizzare anche l'iv nel database.
    Perché?

  6. #6
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Queste funzioni vanno incluse in un plugin per wordpress che sto sviluppando e ci sono plugin di terzi che possono accedere ai dati quindi decriptare una tabella del database.

    Comunque ho provato ugualmente a salvare l'iv in un apposito campo ma il risultato non cambia. La stringa decriptata è sempre diversa... a questo punto, anche per non perdere altro tempo, mi sai suggerire qualche altra funzione per criptare stringhe e che non sia deprecata?
    Apprezzi l'aiuto? Offrimi un caffè!

  7. #7
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Queste funzioni vanno incluse in un plugin per wordpress che sto sviluppando e ci sono plugin di terzi che possono accedere ai dati quindi decriptare una tabella del database.
    Per decrittare serve comunque la chiave. Ad ogni modo non credo sia possibile renderla inaccessibile al medesimo software. Cioè, se la può ottenere in qualche modo il tuo plugin, la potranno ottenere anche plugin terzi.
    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Comunque ho provato ugualmente a salvare l'iv in un apposito campo ma il risultato non cambia. La stringa decriptata è sempre diversa... a questo punto, anche per non perdere altro tempo, mi sai suggerire qualche altra funzione per criptare stringhe e che non sia deprecata?
    Il modulo mcrypt non è deprecato, e per quanto ne so è quello utilizzato comunemente per operazioni di questo tipo.

  8. #8
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Il modulo mcrypt no ma una delle funzioni si.
    Comunque pur salvando nel database IV e KEY non riesco comunque ad ottenere un valore corretto :/
    Apprezzi l'aiuto? Offrimi un caffè!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •