• Consiglio Direttivo

    [Sicurezza] md5();

    PHP 4,5
    Sintassi: string md5 ( string $string [, bool $raw_output ] )

    md5 è una funzione di PHP che calcola il valore md5 di una stringa ovvero un numero esadecimale di 32 caratteri. Se il parametro opzionale $raw_output (inserito da PHP 5.0.0) è impostato su TRUE il risultato verrà restituito nel formato binario raw con lunghezza di 16 caratteri. Di default $raw_output è impostato su FALSE.
    [php]<?php
    $string="forumgt";
    echo md5($string); // risultato: 952c535df18ae0713ee17a3e07cb1527
    echo md5($string, TRUE); // risultato: •,S]ñŠàq>áz>Ë'
    ?>[/php]


  • User Newbie

    girando per il web ho trovato questo: md5oogle

    a quanto sembra con questo strumento è possibile decifrare una stringa in md5


  • ModSenior

    Non si possono decifrare... sono solamente degli archivi con un numero limitato di parole.
    Ovviamente se provi a cryptarla e decryptarla sempre sullo stesso sito viene tutto memorizzato e quindi te lo ritrovi, ma se decifri solamente ti accorgi che riesci a decifrare poche parole


  • Consiglio Direttivo

    Ciao Matte61 😉

    si, se cio' che hash*i *è una parola di senso compiuto potrebbe riuscire a convertirla.
    Prova tu stesso:
    prima admin il cui md5 è 21232f297a57a5a743894a0e4a801fc3 (manco a dirlo...... te la trova)
    e poi Admin il cui md5 è e3afed0047b08059d0fada10f400c1e5 (come vedi cambia sostanzialmente il risultato quando alla fine non hai fatto altro che mettere una delle lettere maiuscole 😉 e non ti trova alcuna corrispondenza)

    Semplicemente, credo, avranno creato un db di corrispondenze per le parole più in uso, dati che saranno comunque incompleti in quanto a 21232f297a57a5a743894a0e4a801fc3 (md5 di admin) corrisponderanno sicuramente ben altre stringhe, magari frasi chissa'.

    Se poi inserisci alcune sicurezze in più a cio' che passi dall'md5, per esempio:

    1. password contenente una maiuscola, una minuscola ed un numero, minimo 8 caratteri;
    2. qualunque valore associato ad un'altra stringa prestabilita e già hash*ata.
      *3) tutto quello che puo' passarti in mente di originale e quindi *imprevedibile *.
      Se esiste un decriptatore (sbagliato come termine...ma lasciatemelo passare :2: questo dovrebbe restituire più valori per ogni hash passato da decriptare in quanto, dati i soli 32 caratteri utilizzabili, ad un'hash corrisponderanno più stringhe 😉

    Questo almeno e' quanto so', lo stesso vale per sha1 ovviamente solo che avendo maggior numero di caratteri le corrispondenze saranno ovviamente minori 😉

    EDIT: pardon, TheDarkita abbiamo scritto in contemporanea 😄


  • User Attivo

    scusate, mi sono sempre chiesto quale criterio viene usato per criptare una stringa con md5.

    Possibile che non utilizzi nessun algoritmo?


  • User Attivo

    Che vuol dire? Certo che è un algoritmo:

    Da wiki:
    L'MD5 (acronimo di Message Digest algorithm 5) è un algoritmo per la crittografia dei dati a senso unico realizzato da Ronald Rivest nel 1991 e standardizzato con la RFC 1321

    Cmq il sistema che avete detto non è decriptazione... è un tipico attaco a dizionari con confronto degli hash criptati...

    Diverso sarebbe partire dall'hash e applicando una formula inversa risalire alla parola originale.

    keiske


  • User Attivo

    e dato questo algoritmo, non si può trovare l'inverso?
    Quello che riesce a decriptare:bho:

    E' una cosa che non sono mai riuscito a spiegarmi 😄


  • User Attivo

    Sei mai riuscito a ricreare da un .mp3 la sua traccia originale .wav? 😄

    Ovviamente no perchè sono algortim unidirezionali (in campo musica/video si chiamano lossy, cioè a perdita di informazione)

    .flac .ape e in campo di archiviazione .zip .rar etc, sono codec loseless perchè comprimono di meno, ma memorizzano anche l'algoritmo inverso, dato che il loro scopo è proprio quello di riottenere il file iniziale

    Diverso ancora è il PGP a chiave asimmetrica che permette di decodificare il file se hai la chiave privata e mi hai dotato di chiave pubblica per codificarti un messaggio.

    keiske


  • User Attivo

    penso di aver capito, anche se sono un pò una testa dura.... prima o poi capirò completamente 😄

    ti ringrazio!
    ciao!


  • User Attivo

    11100110111010110111101 = algoritmo loseless -> sostituisci 111 con 01 (risparmi un bit ogni volta che ci sono tre bit "accesi") e hai una via di ritorno... "sostituisci 01 con 111... ovviamente il mio esempio è bislacco perchè sostituendo 111 con 01 poi di sicuro ci sono degli 01 nativi che a rovescio verrebbero trasformati in 111 erroneamente, ma la logica èp questa

    Abcdefghilm = trasforma le lettere in numeri, moltiplica per 4, dividi per 0,1234, fai la radice quadrata, prendi un numero da 1 a 12345 a seconda di quanto la parola iniziale era lunga e dividi per il numero che finora hai ottenuto, prendi un numero sì e cinque no e trasformalo in lettere = 12hh34hj123k4j34jhk123 (qui operi delle trasformazioni tali e indipendenti all'algoritmo che indietro non ci torni nemmeno se conosci l'algoritmo... ad esempio il numero da 1 a 12345 non sai quale è stato usato senza sapere la parola iniziale)

    L'effetto è che se sai la parola iniziale e applichi l'algoritmo ottieni l'hash giusto, mentre se sai l'algoritmo e l'hash alla parola iniziale non ci torni...

    E' come fenomeno fisico e chimico... se sciogli zucchero nell'acqua per evaporazione puoi riottenere lo zucchero... se bruci un foglio di carta dalla cenere alla carta non torni indietro, ma se vuoi puoi bruciare un altro foglio e confrontare le due ceneri...

    keiske


  • User Attivo

    @Privacy-Impresa said:

    prendi un numero da 1 a 12345 a seconda di quanto la parola iniziale era lunga

    ecco!!!
    era questo che mi mancava: in pratica avendo solo l'hash noi non potremo mai sapere quanto era lunga la parola iniziale, anche perchè l'hash ha sempre la stessa lunghezza... vero?

    😄 grazie per la pazienza 😄


  • User Attivo

    Sì, l'hash è fisso...

    la logica è quella degli indovinelli ad informazioni false

    Due persone stanno parlando e una racconta all'altra dei suoi tre figli e gli propone un indovinello per sapere le loro età:

    La moltiplicazione delle loro età è 36
    La somma è uguale al numero dell'autobus che è appena passato
    Il più grande ha gli occhi azzurri

    Si risolve ragionando con gli occhi dell'inerlocutore che ha delle informazioni che noi non abbiamo. Nel nostro caso ci basta sapere che lui le ha per risolvere l'indovinello pur non essendo là con lui, ma nel caso dell'md5() non basta 😄

    keiske


  • Consiglio Direttivo

    Ottima spiegazione Privacy-Impresa 😉

    Tornando un attimo a questo:
    @Matte61 said:

    girando per il web ho trovato questo: md5oogle

    a quanto sembra con questo strumento è possibile decifrare una stringa in md5
    mi ha insospettito un attimo e quindi ho voluto fare un test.
    ho cercato di decifrare l'hash di un nick inventato: lotar (il cui md5 è 57f70deda6cc9f067833e6dca2619a00)....nessun risultato....
    poi ho generato l'hash della stessa parola e mi ha dato il risultato 57f70deda6cc9f067833e6dca2619a00.....

    indovinate un po'?
    andando poi a decifrare l'hash appena ottenuto (con altro browser così per esser certo) mi ha trovato la corrispondenza 😄
    Conclusioni: se ci tenete alle vostre password e quant'altro consiglierei di NON usare quel servizio dato che si salva le corrispondenze.......

    Un saluto gente :ciauz:


  • User Attivo

    Bhe era abbastanza ovvio che popolasse il suo dizionario con le prove fatte dagli utenti... 😄

    E' come quel tool per vedere se qualcuno ti ha cancellato da msn... casualmente poi cominciano a partire link spam dal tuo account e tu non capisci come mai 😄

    keiske


  • Consiglio Direttivo

    @Privacy-Impresa said:

    Bhe era abbastanza ovvio che popolasse il suo dizionario con le prove fatte dagli utenti... 😄
    Dato il messaggio di Matte a quanto pare no 😉
    Meglio avvisare sull'uso di quello script 😉