Lines Matching refs:hash

29      * @param string $hash  Hash to compare against
32 public function verify_hash($clear, $hash) argument
39 if (str_starts_with($hash, 'U$')) {
42 $hash = substr($hash, 1);
45 $len = strlen($hash);
46 if (preg_match('/^\$1\$([^\$]{0,8})\$/', $hash, $m)) {
50 } elseif (preg_match('/^\$apr1\$([^\$]{0,8})\$/', $hash, $m)) {
54 } elseif (preg_match('/^\$S\$(.{52})$/', $hash, $m)) {
58 } elseif (preg_match('/^\$P\$(.{31})$/', $hash, $m)) {
62 } elseif (preg_match('/^\$H\$(.{31})$/', $hash, $m)) {
66 } elseif (preg_match('/^pbkdf2_(\w+?)\$(\d+)\$(.{12})\$/', $hash, $m)) {
70 … } elseif (preg_match('/^PBKDF2(SHA\d+)\$(\d+)\$([[:xdigit:]]+)\$([[:xdigit:]]+)$/', $hash, $m)) {
74 } elseif (preg_match('/^sha1\$(.{5})\$/', $hash, $m)) {
77 } elseif (preg_match('/^md5\$(.{5})\$/', $hash, $m)) {
80 } elseif (preg_match('/^\$2([abxy])\$(.{2})\$/', $hash, $m)) {
82 $salt = $hash;
83 } elseif (str_starts_with($hash, 'Bcrypt:$2')) {
85 $salt = substr($hash, 7);
86 } elseif (str_starts_with($hash, '{SSHA}')) {
88 $salt = substr(base64_decode(substr($hash, 6)), 20);
89 } elseif (str_starts_with($hash, '{SMD5}')) {
91 $salt = substr(base64_decode(substr($hash, 6)), 16);
92 } elseif (preg_match('/^:B:(.+?):.{32}$/', $hash, $m)) {
95 } elseif (preg_match('/^\$(5|6)\$(rounds=\d+)?\$?(.+?)\$/', $hash, $m)) {
99 } elseif (preg_match('/^\$(argon2id?)/', $hash, $m)) {
103 return password_verify($clear, $hash);
110 } elseif ($len == 41 && $hash[0] == '*') {
114 $salt = $hash;
117 $salt = substr($hash, 0, 2);
123 if (\hash_equals($newhash, $hash)) {
426 $hash = hash($algo, $salt . $clear, true);
428 $hash = hash($algo, $hash . $clear, true);
433 $count = strlen($hash);
436 $value = ord($hash[$i++]);
439 $value |= ord($hash[$i]) << 8;
444 $value |= ord($hash[$i]) << 16;
589 $hash = hash_pbkdf2($algo, $clear, hex2bin($salt), $iter, 0);
590 return "PBKDF2$prefixalgo\$$iter\$$salt\$$hash";
625 $hash = base64_encode(hash_pbkdf2($algo, $clear, $salt, $iter, 0, true));
626 return "pbkdf2_$algo\$$iter\$$salt\$$hash";