Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    operazioni con più hash md5 (somma per esempio)

    è possibile sommare più hash md5? o anche dividere/moltiplicare/sottrarre.. alla fine non sono numeri esadecimali? bisogna usare una funzione particolare o basta utilizzare i normali operatori?

    potrebbe essere utili per rendere più difficile il crack di hash md5 visto che in giro sembra che qualcuno ci riesci di già.

    esempio di utilizzo: sul database memorizzo la somma dell'hash della password + quello della data di registrazione + quello dell'username.

    a questo punto se un hacker dovesse decifrare quello che ho memorizzato sul database, troverebbe un inutile stringa che non è la password, ne tanto meno l'username ne la data di registrazione.

    invece per la funzione di login basterebbe risommare gli hash dei 3 fattori e confrontarli con il database.

    che dite?

  2. #2
    Che mi risulti non è possibile crackare un hash, almeno non nel senso classico. Esistono vari tools, online e non, che fanno un controllo su base dizionario, per scovare eventuali parole semplici utilizzate, quello si.

    Esistono varie teorie sulla debolezza di MD5 come algoritmo, alcune in parte condivisibili, altre no. Tempo fa, venne reso pubblico l'algoritmo per le collisioni, ma anche in questo caso una collisione non è uguale ad una decriptazione vera e propria, senza contare che il problema è che per arrivare a fare una collisione l'eventuale malintenzionato dovrebbe esser riuscito ad entrare nel database con le pass (ad esempio). A quel punto il danno sarebbe già fatto.

    Non mi risulta nemmeno che si possano sommare/moltiplicare/sottrarre/dividere hash, ma puoi utilizzarne le caratteristiche, combinandole con altri sistemi di cifratura per ottenere un livello di sicurezza maggiore.

  3. #3
    grazie per la risposta, nel frattempo ho scritto questo semplice algoritmo
    per farlo funzionare assicuratevi di riempire tutti i campi (sia sopra che sotto)

    sul web non ho trovato niente riguardo alla somma di hash o di numeri esadecimali allora ho avuto la "brillantissima idea" di sommare carattere per carattere per ottenere il nuovo hash.

    il nuovo hash però non è in forma esadecimale, anzi esteticamente è molto brutto allora basta passarlo di nuovo all'algoritmo md5 così lo trucchiamo da hash.

    che ne dite?

    Codice PHP:
    <form method="post">
    username: <input name="username"> 

    password: <input name="password">

    data: <input name="data">



    <?
    $username
    =$_POST["username"];
    $password=$_POST["password"];
    $data=$_POST["data"];
    $sum="";

    $md5username=md5($username);
    $md5password=md5($password);
    $md5data=md5($data);

    for(
    $i=0;$i<32;$i++)
    $sum.=chr(ord($md5username[$i])+ord($md5password[$i])+ord($md5data[$i]));

    $hash=md5($sum);

    echo 
    "hash di ".$username.": ".$md5username."
    "
    ;
    echo 
    "hash di ".$password.": ".$md5password."
    "
    ;
    echo 
    "hash di ".$data.": ".$md5data."
    "
    ;
    echo   
    "somma degli hash: ".$sum."
    "
    ;
    echo 
    "hash della somma: ".$hash."
    "
    ;

    ?>




    PROVA DI LOGIN 

    username: <input name="l1"> 

    password: <input name="l2">

    data: <input name="l3">

    <input type="submit">

    </form>

    <?

    $l1
    =$_POST["l1"];
    $l2=$_POST["l2"];
    $l3=$_POST["l3"];
    $l4="";

    $md5l1=md5($l1);
    $md5l2=md5($l2);
    $md5l3=md5($l3);

    for(
    $i=0;$i<32;$i++)
    $l4.=chr(ord($md5l1[$i])+ord($md5l2[$i])+ord($md5l3[$i]));

    $hashl4=md5($l4);

    if (
    $hashl4==$hash) echo "login effettuato";
    else echo 
    "login errato";
    ?>

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.