Det skal måske for en god ordens skyld nævnes at sha1 og md5 ikke er reel kryptering, det er checksum hashing. Forskellen er at krypteret tekst kan dekrypteres, og at hashet tekst ikke kan.
Vær iøvrigt opmærksomme på at der i teorien godt kan være flere tekststrenge, der giver den samme hash (sha1 såvel som md5) streng. Vær også opmærksomme på at man kan lave et rainbow table, altså en database med en masse præ-hashede strenge og deres tilsvarende "clear text" strenge, som en cracker kan slå op i hvis han har erhvervet sig en liste af hashede passwords.
For at øge sikkerheden på den front plejer man at benytte en salt - en salt er en streng af tal, tegn og bogstaver der tilføjes til starten/enden af den streng man vil hashe, inden man hasher den. på den måde bliver strengen længere og mere tilfældig, og dermed sværere at afkode.
eksempel:
$salt = 'x78sd-23,98sSz';
$password = $_POST['password'];
$skjult_password = sha1($salt . $password);
echo $skjult_password;
Man skal naturligvis kende salten både når man skaber den sha1'ede checksum til passwordet, og når man tjekker på om det indtastede password er korrekt. Derfor plejer man enten at gemme den i en konfigurationsfil(hvis man kun har én salt) eller i databasen i samme tabel som det hashede password ligger i, i sit eget felt(hvis man laver en ny salt hver gang der bliver lavet et password).