- substr: documentation ( source)
- mt_rand: documentation ( source)
- crypt: documentation ( source)
- sha1: documentation ( source)
<?php
function pass_crypt($password, $unique_salt) {
return crypt($password, '$2a$10$'.$unique_salt);
}
function pass_salt() { return substr(sha1(mt_rand()),0,22); }
function pass_encrypt($hash, $password) {
$full_salt = substr($hash, 0, 29);
$new_hash = crypt($password, $full_salt);
// returns true or false
return ($hash === $new_hash);
}
echo pass_crypt('e1d0b743ce230a5d3bfffa678848ecc8e79ad09d', pass_salt());