- strpos: documentation ( source)
- strrev: documentation ( source)
- define: documentation ( source)
<?php
$res = 680131659347;
define('ALPHABET', 'acdegilmnoprstuw');
echo get_hash(ALPHABET, 'leepadg'), PHP_EOL;
function get_hash($alphabet, $string) {
$h = 7;
$len = strlen($string);
for($i = 0; $i < $len; $i++) {
$h = ($h * 37 + strpos($alphabet, $string[$i]));
}
return $h;
}
function unhash($alphabet, $hash) {
$result = '';
$len = strlen($letters);
while ($res > 7) {
for ($i = 0; $i < $len; $i++) {
$newres = ($res - $i) / 37;
if (is_int($newres)) {
$result .= $letters[$i];
$res = $newres;
break;
}
}
return strrev($result);
}
}