<?php
function startsWith($haystack, $needle) {
return $needle === "" || strrpos($haystack, $needle, -strlen($haystack)) !== FALSE;
}
function find_dec_prefix($str) {
$i = 0;
for(;;$i++) {
if ($i == 0)
$newstr = $str;
else
$newstr = $str . $i;
$hash = sha1($newstr);
if($hash[0] == '0' && $hash[1] == 'e') {
// echo "Found it: [" . $newstr . "] " . $hash . "\n";
// echo "subs: " . substr($hash, 2) . "\n";
if(!preg_match("/[a-f]/", substr($hash, 2))) {
echo "doesn't contain a-f: $hash\n";
return $newstr;
}
}
}
}
$pass1 = find_dec_prefix("aaroZmOk");
$pass2 = find_dec_prefix("aaK1STfY");
var_dump(sha1($pass1) == sha1($pass2));
echo(sha1('aaroZmOk') . " == " . sha1('aaK1STfY') . "\n");
$pass3 = find_dec_prefix("suPERSecretPasSw0rD");
$pass4 = find_dec_prefix("omgDONTcollidePLEASE");
var_dump(sha1($pass3) == sha1($pass4));
echo(sha1('aaroZmOk') . " == " . sha1('aaK1STfY') . "\n");
- Output for 5.4.2 - 5.4.45, 5.5.24 - 5.5.35, 5.6.7 - 5.6.21, 7.0.0 - 7.0.20, 7.1.0 - 7.1.10, 7.2.0 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
- doesn't contain a-f: 0e66507019969427134894567494305185566735
doesn't contain a-f: 0e76658526655756207688271159624026011393
bool(true)
0e66507019969427134894567494305185566735 == 0e76658526655756207688271159624026011393
Process exited with code 137.
preferences:
166.6 ms | 404 KiB | 225 Q