Visualizzazione risultati 1 fino 4 di 4

Discussione: Aiuto su funzione di criptazione / decriptazione dati

  1. #1
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito Aiuto su funzione di criptazione / decriptazione dati

    Salve,

    Sto utilizzando, in questi giorni, la classe md5(), e il metodo illustrato su questo forum per criptare e decriptare i dati:

    http://forum.html.it/forum/showthrea...hreadid=786252

    Ora, premetto che le due funzioni mi funzionano perfettamente, volevo solo studiarmi un po le due funzioni, il problema è che, nella funzione str_cript(), all'interno del ciclo for, aggiunge alla variabile $crdata la seguente funzione:
    Codice PHP:
    sprintf("%02X",(ord($data[$i]))^(ord($key[$i%$lk])));
    ora, so che la funzione applica una specifica formattazione, ma in questo caso cosa fa? e soprattutto cosa ci fa quell'operatore in mezzo alle due funzione ord(), da quello che sapevo io quell'operatore e utilizzato solamente nelle espressioni regolari.

    E nella funzione str_dectypt(), cosa restituisce questa operazione?:
    Codice PHP:
    chr((hexdec(substr($cdata, $i, 2)))^(ord($key[($i>>1)%$lk])));
    Scusate per il disturbo ma non riesco proprio a capire

    Sevenjeak
    Software developer and much more

  2. #2
    Guest

    Predefinito

    prova con il js:
    eccoti un esempio di pagina criptata:
    Codice:
    <script>
    <!--
    document.write(unescape("%3Cscript%3E%0A%3C%21--%0Adocument.write%28unescape%28%22%253Cscript%253E%250A%253C%2521--%250Adocument.write%2528unescape%2528%2522%25253Cscript%25253E%25250A%25253C%252521--%25250Adocument.write%252528unescape%252528%252522%2525253Cscript%2525253E%2525250A%2525253C%25252521--%2525250Adocument.write%25252528unescape%25252528%25252522%252525253Cscript%252525253E%252525250A%252525253C%2525252521--%252525250Adocument.write%2525252528unescape%2525252528%2525252522%25252525253Cscript%25252525253E%25252525250A%25252525253C%252525252521--%25252525250Adocument.write%252525252528unescape%252525252528%252525252522%2525252525253Cscript%2525252525253E%2525252525250A%2525252525253C%25252525252521--%2525252525250Adocument.write%25252525252528unescape%25252525252528%25252525252522%252525252525253Cfont%2525252525252520color%252525252525253D%2525252525252522red%2525252525252522%252525252525253Eciao%252525252525253C/font%252525252525253E%252525252525253Cfont%2525252525252520color%252525252525253D%2525252525252522blue%2525252525252522%252525252525253E%2525252525252520a%2525252525252520te%252525252525253C/font%252525252525253E%25252525252522%25252525252529%25252525252529%2525252525253B%2525252525250A//--%2525252525253E%2525252525250A%2525252525253C/script%2525252525253E%252525252522%252525252529%252525252529%25252525253B%25252525250A//--%25252525253E%25252525250A%25252525253C/script%25252525253E%2525252522%2525252529%2525252529%252525253B%252525250A//--%252525253E%252525250A%252525253C/script%252525253E%25252522%25252529%25252529%2525253B%2525250A//--%2525253E%2525250A%2525253C/script%2525253E%252522%252529%252529%25253B%25250A//--%25253E%25250A%25253C/script%25253E%2522%2529%2529%253B%250A//--%253E%250A%253C/script%253E%22%29%29%3B%0A//--%3E%0A%3C/script%3E"));
    //-->
    </script>
    praticamente incomprensibile...
    ma il browser lo interpreta come:
    Codice HTML:
    <font color="red">ciao</font><font color="blue"> a te</font>
    la criptazione eseguita é al livello 8 e se metterei il livello 9
    eccolo:
    Codice:
    <script>
    <!--
    document.write(unescape("%3Cscript%3E%0A%3C%21--%0Adocument.write%28unescape%28%22%253Cscript%253E%250A%253C%2521--%250Adocument.write%2528unescape%2528%2522%25253Cscript%25253E%25250A%25253C%252521--%25250Adocument.write%252528unescape%252528%252522%2525253Cscript%2525253E%2525250A%2525253C%25252521--%2525250Adocument.write%25252528unescape%25252528%25252522%252525253Cscript%252525253E%252525250A%252525253C%2525252521--%252525250Adocument.write%2525252528unescape%2525252528%2525252522%25252525253Cscript%25252525253E%25252525250A%25252525253C%252525252521--%25252525250Adocument.write%252525252528unescape%252525252528%252525252522%2525252525253Cscript%2525252525253E%2525252525250A%2525252525253C%25252525252521--%2525252525250Adocument.write%25252525252528unescape%25252525252528%25252525252522%252525252525253Cscript%252525252525253E%252525252525250A%252525252525253C%2525252525252521--%252525252525250Adocument.write%2525252525252528unescape%2525252525252528%2525252525252522%25252525252525253Cfont%252525252525252520color%25252525252525253D%252525252525252522red%252525252525252522%25252525252525253Eciao%25252525252525253C/font%25252525252525253E%25252525252525253Cfont%252525252525252520color%25252525252525253D%252525252525252522blue%252525252525252522%25252525252525253E%252525252525252520a%252525252525252520te%25252525252525253C/font%25252525252525253E%2525252525252522%2525252525252529%2525252525252529%252525252525253B%252525252525250A//--%252525252525253E%252525252525250A%252525252525253C/script%252525252525253E%25252525252522%25252525252529%25252525252529%2525252525253B%2525252525250A//--%2525252525253E%2525252525250A%2525252525253C/script%2525252525253E%252525252522%252525252529%252525252529%25252525253B%25252525250A//--%25252525253E%25252525250A%25252525253C/script%25252525253E%2525252522%2525252529%2525252529%252525253B%252525250A//--%252525253E%252525250A%252525253C/script%252525253E%25252522%25252529%25252529%2525253B%2525250A//--%2525253E%2525250A%2525253C/script%2525253E%252522%252529%252529%25253B%25250A//--%25253E%25250A%25253C/script%25253E%2522%2529%2529%253B%250A//--%253E%250A%253C/script%253E%22%29%29%3B%0A//--%3E%0A%3C/script%3E"));
    //-->
    </script>
    praticamente ho utilizzato la funzione document.write() e la finzione unescape()
    la prima funzione stampa del testo sullo schermo (lo scrive) la seconda lo comprende per poi interpretarlo...
    naturalmente si puó arrivare anche al livello 10 di criptazione... ma non te lo consiglio xke... (sai giá il xke vero?)

  3. #3
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    seingh, non mi pare che il tuo post risponda alla domanda di sevenjeak...

    Comunque il funzionamento del codice è questo, a grandi linee. In fase di cifratura:
    1. La stringa da criptare e la chiave di cifratura vengono convertite nel rispettivo codice ASCII
    2. Carattere per carattere, si esegue la XOR bitwise tra stringa da criptare e chiave (questa viene "ripetuta" fino a coincidere in lunghezza con il testo)
    3. Il risultato viene stampato come cifra esadecimale.

    Questo un esempio:
    Codice:
    testo: HELLO WORLD
    chiave: CIAO
    
    testo in ASCII-HEX: 48 45 4C 4C 4F 20 57 4F 52 4C 44
    chiave ripetuta:    43 49 41 4F 43 49 41 4F 43 49 41
    
    risultato XOR:      0B 0C 0D 03 0C 69 16 00 11 05 05
    In fase di decifratura, si esegue questo:
    1. Si prende il blob di bit ottenuto dalla cifratura
    2. Si converte in ASCII la chiave e la si allinea con il testo cifrato (ripetendo la chiave tutte le volte che è necessario)
    3. Si esegue la XOR bitwise
    4. Si convertono i bit decifrati nel carattere ASCII corrispondente:
    Codice:
    testo cifrato:    0B 0C 0D 03 0C 69 16 00 11 05 05
    chiave cifrata:   43 49 41 4F 43 49 41 4F 43 49 41
    
    risultato XOR:    48 45 4C 4C 4F 20 57 4F 52 4C 44
    decodifica ASCII: H  E  L  L  O     W  O  R  L  D
    Perché funziona? Perché la XOR bitwise è un'operazione invertibile, e l'operazione inversa è proprio se stessa (puoi verificarlo dalla tabella di verità):
    Codice:
    A B | A^B
    ----+----
    0 0 |  0
    0 1 |  1
    1 0 |  1
    1 1 |  0
    Spero di averti risposto... stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  4. #4
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Premetto che da un po di tempo che non uso la conversione in ASCII, cmq lo script credo di averlo capito, grazie
    Ultima modifica di sevenjeak : 25-03-2010 alle ore 12.55.08

    Sevenjeak
    Software developer and much more

Regole di scrittura

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