Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Problema hash MD5

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    57

    Problema hash MD5

    Ciao a tutti, sto affrontando per la prima volta l'argomento sicurezza md5, ma sono bloccato in un punto. Il codice mi sembra corretto, eppure mi da login errato.
    Ho letto un pò di 3d ma non ne sono venuto a capo...

    Codice PHP:
    $query mysql_query("SELECT * FROM users WHERE username='".$_POST['username']."' AND password='".md5($_POST['password'])."'");
        
    $numRows mysql_num_rows($query);
        if (
    mysql_num_rows($query)>0){
            
    $_SESSION['username']=$_POST['username']; 
            
    $_SESSION['password']=$_POST['password']; 
            
    header("Location: panel.php");
        }
        else {
            echo 
    "Login errato";
        } 
    Dove sbaglio?

  2. #2
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Ciao, così sembra tutto ok...prova a controllare la query prima di darla in "pasto" all'if...

    Codice PHP:
    $query mysql_query("SELECT * FROM users WHERE username='".$_POST['username']."' AND password='".md5($_POST['password'])."'");
    if(
    $query){
        
    $numRows mysql_num_rows($query);
        if (
    $numRows){ // se ti sei creato la variabile d'appoggio usala, invece di riscriverti di nuovo la funzione.
            
    $_SESSION['username']=$_POST['username']; 
            
    $_SESSION['password']=$_POST['password']; 
            
    header("Location: panel.php");
        }
        else echo 
    "Login errato";
    }
    else echo 
    "Errore scrittura query"

  3. #3
    Ciao....io proverei a stampare la query prima di lanciarla per provare ad eseguirla direttamente da pannello phpmyadmin...una cosa del genere:
    Codice PHP:
    $str "SELECT * FROM users WHERE username='".$_POST['username']."' AND password='".md5($_POST['password'])."'";

    echo 
    $str;

    $query mysql_query($str); 
    e poi come giustamente dice jcsnake fare un controllo sulla query:
    Codice PHP:
    if($query){ 
        
    // ...esegui le operazioni

    else echo 
    "Errore scrittura query --- ".mysql_error();   // ci aggiungerei anche un mysql_error per vedere eventuali errori mysql 

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    57
    grazie dell'aiuto ragazzi, ho provato a stampare la password md5 e mi restituisce : 098f6bcd4621d373cade4e832627b4f6

    mentre dovrebbe essere : 098f6bcd4621d37

    praticamente aggiunge non so cosa alla fine della password md5...

  5. #5
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Hai controllato se la password al momento della sottomissione contiene spazi vuoti o caratteri speciali?Magari la crea diversa per colpa di uno di questi fattori...

  6. #6
    mmmm...prova a stampare il $_POST in chiaro e vedere se corrisponde alla password corretta...tra l'altro..a pensarci l'md5 dovrebbe ritornare sempre una stringa di 32 cifre (http://it.wikipedia.org/wiki/MD5)...per cui mi viene il dubbio che sia stata salvata correttamente nel db, magari hanno usato un altro algoritmo di cifratura...

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    57
    Sono un'idiota

    avevo i campi delle password settato a varchar(15), quindi le troncava.
    ora ho messo varchar(32) e pare funzionare. Mi perdo sempre in queste cavolate, scusate...

    Grazie a tutti!!!

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.