Jack van Rock schrieb:
<?php $password_sub = "test"; $passsowrd_hash_db = base64_decode("e1NTSEF9aH...."); $salt = base64_decode(substr($passsowrd_hash_db , 32));
password format:
$pwd = "{SSHA}" . base64_encode( sha1( $pass . $salt, true) . $salt );
so just backtrace from there
// skip the "{SSHA}" $b64 = substr($ldap_entry, 6)
// base64 decoded $b64_dec = base64_decode($b64)
// the salt (given it is a 4byte one) $salt = substr(b64_dec, -4)
// the sha1 part $sha = substr($b64_dec, 20)
// now compare $sha == base64_encode( sha1($challengepw . $salt) . $salt )