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

    Come si usa un "salt" nelle password?

    Avevo intenzione di informarmi sulla crittografia delle password, perché il mio livello di conoscenza era piuttosto base... e sono entrato in un mondo infinito

    A parte la quantità esorbitante di hash esistenti (devo ancora capire quali siano i "migliori"), da quello che ho letto una password è più sicura se si aggiunge un "salt", cioè una stringa.
    Quello che non ho ben capito è in quale punto metterla nella stringa originale e come crittografarla.

    Mettiamo che come base usi lo sha256 per crittografare le password degli utenti:
    Codice PHP:
    $pwd "prova";
    $result hash("sha256"$pwd); 
    1) Devo usare un salt uguale per tutti gli utenti? (es: $salt = 'abcdef')
    2) Dove lo piazzo il salt? In mezzo alla password e cripto tutto insieme?
    3) Esiste qualche regola ottimale per costruire la salt o bastano caratteri random?

    Immagino che diversi di voi la usino nei siti che richiedono degli accessi tramite login...

  2. #2
    per l' hash non so dirti..

    io uso la funzione crypt() che è one-way e da la possibilità di usare l'algoritmo BLOWFISH

    Codice PHP:
        private function cryptPassword$password ) {
            
    $salt strtrbase64_encodemcrypt_create_iv16MCRYPT_DEV_URANDOM ) ), '+''.' );
            
    $salt sprintf("$2a$%02d$"10) . $salt;
            return 
    crypt$password$salt );
        } 
    http://it1.php.net/manual/en/function.crypt.php
    Questa volta, più che un voto.. è favoreggiamento.

  3. #3
    Stavo giusto per iniziare a leggermi la sua estensione, Mcrypt:
    http://www.php.net/manual/en/intro.mcrypt.php

    Direi che prima mi studio il Crypt che usi nella tua funzione.
    Una cosa non capisco: vedo che crei il salt in modo automatico. Una volta che hai generato la password in questo modo e salvata nel database, come fai a confrontare la password una volta che l'utente si logga? Salvi la salt in un altro campo, così ce l'hai a disposizione da aggiungere alla password?

  4. #4
    Non c'è bisogno di salvare il salt, per fare la comparazione basta passare la stringa criptata come salt e l'arlgoritmo ricostruisce il tutto.

    Codice PHP:
    // la password precedentemente criptata usata come salt
    if ( crypt$user_input$db_user_password ) == $db_user_password ) {
      
    // la pass è corretta

    Questa volta, più che un voto.. è favoreggiamento.

  5. #5
    Ottimo, grazie per le informazioni

    PS: partendo dalla funzione crypt sono arrivato a scoprire la funzione password_hash nativa del php (e che è compatibile con crypt):
    http://uk1.php.net/manual/it/function.password-hash.php
    Per un inesperto di sicurezza come me sembra eccezionale...


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.