Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292

    Criptare un valore univoco numerico

    Ciao ragazzi,
    ho un ID AUTO INCREMENT che però dovrei criptarlo e l'output deve essere a sua volta anch'esso numerico.

    Esempio:

    Il mio ID reale è: 5

    L'output che mi deve restituire deve avere un formato simile a questo: 1293429600

    ovviamente anche l'output deve essere univoco.

    come posso fare?

  2. #2
    la butto lì... poi aspetta altre risposte...

    $id = 5;

    $id_cryptato = ($id *$id)^$id;

  3. #3
    Io non ho capito di preciso quello che poi vuoi andare a fare con questo numero criptato... comunque farei una cosa del genere.

    Codice PHP:
    function criptaNumero($num) {
       
    $crypt SHA1($num);
       
    $crypt preg_replace("#[^0-9]#"""$crypt);
       
    // se poi devi troncare a 10 cifre (come da tuo esempio)
       // $crypt = substr($crypt, 0, 10);

       
    RETURN $crypt;
    }

    $id_criptato criptaNumero($id); 
    Ma poi non ho capito come pensi di tornare indietro per interrogare il DB partendo dall'ID criptato.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    Ciao mi è venuto subito in mente l'MD5, ti alleggo il codice:

    <?php
    $id = 5; //Dichiaro l'ID da criptare
    $cripto = md5($id); //Cripto l'ID in md5
    echo $cripto; //Stampo l'output
    ?>


    Per decifrare i codici che ti genererà lo script, so che ci sono siti che li decifrano nel caso tu rivoglia la loro forma originale.Fammi sapere se ti è stato utile.
    Ciao!


    P.Sly1982 nel tuo scritp ho visto che criptando il codice alla fine usi un "^", mi sapresti dire qual'è la sua funzione?Curiosità personale.Ciau

  5. #5
    Originariamente inviato da SkyBlue
    P.Sly1982 nel tuo scritp ho visto che criptando il codice alla fine usi un "^", mi sapresti dire qual'è la sua funzione?Curiosità personale.Ciau
    è un elevamento a potenza ad esempio se $id= 3

    3*3 = 9

    9^3 =
    9*9*9 = 729

    quindi

    ($id*$id)^$id = 729

    Originariamente inviato da alcio74
    Ma poi non ho capito come pensi di tornare indietro per interrogare il DB partendo dall'ID criptato
    Il sistema che ti ha consigliato alcio74 è ottimo ma non tipermetterà di tornare indietro e di ottenere nuovamente l'id.

    Al contrario il mio sì

    (magari potresti usare la funzione crypt con un meccanismo analogo a quello descritto da alcio74..)

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Ciao ragazzi,
    intanto vi ringrazio per le numerose risposte e poi volevo scusarmi per non aver detto che ovviamente questo numero si deve anche decriptare per poterlo confrontare nel db che contiene l'id reale.

    Se può esservi utile devo criptare questo id perchè mi serve per mostrarlo al cliente quando prenota un biglietto aereo, quindi per questo motivo volevo un ID numerico criptato.

    Se lo cripto con un output alfanumerico va a finire che se il cliente deve fare lo spelling del suo ID di prenotazione al centralino dovrà dettare una stringa lunghissima. Un'altra possibile soluzione potrebbe essere con questo formato:

    E26596

    una sola lettera e poi tutti numeri.


    Grazie

    M4tt86

  7. #7
    Grazie della risposta e della spiegazione oly1982, tornando comunque al criptaggio del codice se ti serve in un piccolo formato potresti semplicemente farti uno script che genera numeri di 3 cifre o di 4 cifre a caso senza naturalmente generare gli stessi, con lettere definite da te......

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    SkyBlue e per decriptare il numero poi come faccio?

  9. #9
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    io proverei ad usare i codici EAN (quelli dei barcode tanto per intenderci) come base di partenza, epoi farei una paio di mescolamenti calcolati a blocchi di cifre e restittuirei il tutto
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Ragazzi volevo un vostro consiglio,
    sulla base di quello che ha scritto alcio74, per decriptare il numero generato ho fatto così:

    Codice PHP:
    function criptaNumero($num$length=6) {
       
    $crypt sha1($num);
       
    $crypt preg_replace("#[^0-9]#"""$crypt);
       
    $crypt substr($crypt0$length);

       return 
    $crypt.$num;
    }

    function 
    decriptaNumero($num$length=6) {
        
    $crypt substr($num$length, -1);
           return 
    $crypt;
    }

    echo 
    $id_criptato criptaNumero(5)."
    "
    ;
    echo 
    $id_decriptato decriptaNumero($id_criptato)."
    "

    Cosa ne pensate? Alla fine il vero numero è sempre visibile, però si nasconde tra gli altri numeri.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.