Visualizzazione risultati 1 fino 21 di 21

Discussione: Funzione php che cripta e descripta una stringa

  1. #1
    Guest

    Predefinito Funzione php che cripta e descripta una stringa

    Ciao ragazzi mi date una mano a capire come potrei creare una funziona che prende una stringa presa dal db e la converte tramite una parola....
    e poi la funzione per decriptarla con la stessa parola...^^

  2. #2
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    Utilizzare le funzion crypt() md5(), sha1() per criptare e decriptare stringhe.

    Cerca con google per più info...
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  3. #3
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    ...Però poi non potrà tornare in dietro!
    Ad esempio se cripti la parola ciao --> 6e6bc4e49dd477ebc98ef4046c067b5f

    Dalla stringa 6e6bc4e49dd477ebc98ef4046c067b5f non potrai MAI tornare indietro a ciao!

    ...Un mio consiglio è quello di farsi una funzione sua.

  4. #4
    Guest

    Predefinito

    usando crypt
    sono riuscito a fare una cosa del genere
    ma per decriptarla
    Codice PHP:
    echo crypt($contenuto, "xt");

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

    Predefinito

    Citazione Originalmente inviato da EuroSalute Visualizza messaggio
    Utilizzare le funzion crypt() md5(), sha1() per criptare e decriptare stringhe.

    Cerca con google per più info...
    crypt, md5 e sha1 sono processi irreversibili (tranne se ti salvi il rispettivo contenuto da qualche parte e poi lo confronti) perchè calcolano l'hash e quindi non è permesso la decriptazione.

    Se vuoi creare una o due funzioni per criptare/decriptare stringhe in una "codifica" tutta tua il primo passo è creare un array inserendogli "lettera"=>"valore_criptato_corrispondente_alla_le ttera.

    Quando l'array è completo dovrai inserire nella funzione strtr (o simili) sia la stringa che l'array.

    Per decriptare utilizzerai una funzione (array_inverse() se non ricordo male) che sarà l'opposto della prima.
    Apprezzi l'aiuto? Offrimi un caffè!

  6. #6
    Guest

    Predefinito

    tu dici tipo il cifrario di cesare...

  7. #7
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

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

    Predefinito

    Ecco, ho appena trovato un vecchio codice archiviato nel sito e mai usato (per ora):

    Codice PHP:
    <?php

    $myarray
    = array("a"=>"hgf","b"=>"flk","c"=>"mdl");

    function
    cripta($string){

    global
    $myarray;

    return
    $myarray[$string];

    }

    function
    decripta($string){

    global
    $myarray;

    $myarraye = array_flip($myarray);

    return
    $myarraye[$string];

    }

    echo
    cripta("a b c"); // Stampa "hgf flk mld"
    echo "<br />";
    echo
    decripta("hgf flk mld"); // Stampa "a b c"

    ?>
    Apprezzi l'aiuto? Offrimi un caffè!

  9. #9
    Guest

    Predefinito

    invece di usare un array...
    pensavo di usa
    base64_encode()
    base64_decode()
    criptandole e decriptandole usando un testo
    tipo una cosa del genere
    echo crypt($contenuto, "xt");

  10. #10
    Guest

    Predefinito

    Non ho capito. Se usi base64_encode e base64_decode non hai bisogno di un'ulteriore funzione per criptare le stringhe, lo fanno quelle due. Il secondo parametro della funzione crypt è un salt, una stringa fissa che viene aggiunta dinamicamente da PHP alla fine del testo da criptare nel caso tu non la specifichi. Che cosa c'entra?

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

    Predefinito

    zappi da quanto io ho potuto capire nel tuo primo post tu volevi una "codifica" personale, base64_encode e base64_decode fanno tutto loro ma chiunque entri in possesso del tuo testo può "decriptarlo" per questo io ti ho suggerito il mio vecchio codice.

    Comunque se vuoi utilizzare la base64 non c'è alcun problema, solo voglio farti notare, come ha probabilmente sottolineato alessandro, che se usi la funzione crypt insieme alla base64_encode il processo è irreversibile.

    Come ti ho già detto sopra crypt è una funzione che calcola l'hash di una stringa secondo un suo algoritmo e quindi è irreversibile, se tu, una volta codificato il tuo testo in base64 lo codifichi a sua volta in crypt non potrai più ricavare il testo d'origine.

    Quindi, senza offendere nessuno, ti consiglio di dimenticare, per il tuo scopo, le funzioni md5, sha1 e crypt (e simili) qui citate in quanto irreversibili.
    Apprezzi l'aiuto? Offrimi un caffè!

  12. #12
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    In questa pagina ... http://www.php.net/manual/en/mcrypt.examples.php ... ho trovato alcuni esempi che usano le funzioni Mcrypt in modo avanzato.

    Puoi utilizzare base64 con queste funzioni avanzate....

    Example is triple_des and cbc with self key and iv for storing in base64:

    Codice PHP:
    $key = "E4HD9h4DhS23DYfhHemkS3Nf";// 24 bit Key
    $iv = "fYfhHeDm";// 8 bit IV
    $input = "Text to encrypt";// text to encrypt
    $bit_check=8;// bit amount for diff algor.

    $str= encrypt($input,$key,$iv,$bit_check);
    echo
    "Start: $input - Excrypted: $str - Decrypted: ".decrypt($str,$key,$iv,$bit_check);

    function
    encrypt($text,$key,$iv,$bit_check) {
    $text_num =str_split($text,$bit_check);
    $text_num = $bit_check-strlen($text_num[count($text_num)-1]);
    for (
    $i=0;$i<$text_num; $i++) {$text = $text . chr($text_num);}
    $cipher = mcrypt_module_open(MCRYPT_TRIPLEDES,'','cbc','');
    mcrypt_generic_init($cipher, $key, $iv);
    $decrypted = mcrypt_generic($cipher,$text);
    mcrypt_generic_deinit($cipher);
    return
    base64_encode($decrypted);
    }

    function
    decrypt($encrypted_text,$key,$iv,$bit_check){
    $cipher = mcrypt_module_open(MCRYPT_TRIPLEDES,'','cbc','');
    mcrypt_generic_init($cipher, $key, $iv);
    $decrypted = mdecrypt_generic($cipher,base64_decode($encrypted_text));
    mcrypt_generic_deinit($cipher);
    $last_char=substr($decrypted,-1);
    for(
    $i=0;$i<$bit_check-1; $i++){
    if(
    chr($i)==$last_char){



    $decrypted=substr($decrypted,0,strlen($decrypted)-$i);
    break;
    }
    }
    return
    $decrypted;
    }
    ***********************************

    Voglio far notare che...variando le variabili $key(24bit secret key) e $iv(8bit secret iv) come input in fase di richiesta(basterà ricordarsi cosa si è inserito per queste 2 variabili), nessuno potrà mai decriptare una stringa privata(frase o parola che sia) anche se qualche sconosciuto ne è venuto a conoscenza...

    ***********************************
    Ultima modifica di EuroSalute : 30-12-2009 alle ore 19.16.14 Motivo: maggiori info
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  13. #13
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    Codice PHP:
    <?php

    $key
    = "chiaveprivata";

    $value = "darkwolf";

    $encrypted_data = mcrypt_ecb (MCRYPT_3DES, $key, $value, MCRYPT_ENCRYPT);

    $decrypted_data = mcrypt_ecb (MCRYPT_3DES, $key, $encrypted_data, MCRYPT_DECRYPT);

    echo
    $encrypted_data;
    echo
    " = ";
    echo
    $decrypted_data;

    ?>
    questo stamperà: pIËÐq©Ó8 = darkwolf

  14. #14
    Guest

    Predefinito

    Direi che l'esempio di darkwolf è molto interessante, in quanto codifica i dati secondo una chiave privata che è in possesso solamente tuo, quindi è come se fosse un algoritmo one-way solo per chi non sa che la variabile $key contiene il valore chiaveprivata. Non sapevo che in PHP si potesse fare, interessante!

    EDIT: Dando un'occhiata al manuale di PHP sembra deprecata quella funzione, usa mcrypt_cbc, credo che accetti gli stessi parametri (ma che cambia?!).
    Ultima modifica di alessandro1997 : 30-12-2009 alle ore 19.39.35

  15. #15
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    Su AV è possibile da quando (ormai qualche mese fa) fu abilitata la libreria mcrypt :)
    Vero, vedo che è deprecata, qui funziona comunque: http://darkwolf.altervista.org/script/crypt.php e non so dirti quale sia la differenza :P

  16. #16
    Guest

    Predefinito

    Beh, ma le funzioni deprecate funzionano, è che sarebbe meglio non usarle perché all'avanzamento di versione, a meno che non siano indispensabili/usate dal 99% dei server, vengono eliminate...

  17. #17
    Guest

    Predefinito

    quello che dicevo io
    e perfetto
    http://darkwolf.altervista.org/script/crypt.php
    ma
    mcrypt_ecb
    funziona sulla maggior parte dei server...^^

  18. #18
    Guest

    Predefinito

    Puoi usare un vecchio algoritmo che ho scritto tempo fa:
    http://gabryhacker.altervista.org/re...ources/alg.zip

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

    Predefinito

    Citazione Originalmente inviato da zappi Visualizza messaggio
    quello che dicevo io
    e perfetto
    http://darkwolf.altervista.org/script/crypt.php
    ma
    mcrypt_ecb
    funziona sulla maggior parte dei server...^^
    Essendo un hosting condiviso dovrebbe funzionare su tutti i server.
    Apprezzi l'aiuto? Offrimi un caffè!

  20. #20
    Guest

    Predefinito

    lo provato ma non funziona da errore
    Fatal error: Call to undefined function: mcrypt_ecb()

  21. #21
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

Regole di scrittura

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