Δημοσιεύτηκε: 28 Ιουν 2011, 03:45
από medigeek
http://www.php.net/manual/en/function.sha1.php
http://php.net/manual/en/function.crypt.php

Βασικά αυτό που συστήνουν είναι να μπει το salt (text string με επιπλέον χαρακτήρες). Για παράδειγμα θα δέχεσαι τον κωδικό που έγραψε ο χρήστης "password", και το sha1() να δημιουργεί ένα hash από το text string "password" συν το "moomoo" (το "moomoo" είναι το salt).

Παρόμοιος τρόπος:
Κώδικας: Επιλογή όλων

$salt = 'ticket-ABC-XYZ-012'; // a random text string
$password = 'this_is_what_user_typed'; // user-input password
echo sha1( sha1($password) . sha1($salt) ); // result: hash text string


Με αυτή τη μέθοδο (salt + (md5 ή sha1 ή άλλο)) και να σου κλέψουν το hashed ("crypted") κωδικό από τη βάση δεδομένων, δε θα μπορούν να το συγκρίνουν με γνωστά hashes κωδικών όπως "admin", "root", επειδή δεν μπορούν να βρουν τον αληθινό κωδικό χωρίς τον αλγόριθμο.
Δηλαδή και "admin" να είναι ο κωδικός, το hash με το salt θα το προστατεύσει (αν δεν ξέρει τον αλγόριθμο του αρχείου php).