base64_encodeで圧縮しURLセーフにしています。
short_hash.php
<?php
$shortHash = function ($data, $algo = 'CRC32') {
return strtr(rtrim(base64_encode(pack('H*', hash($algo, $data))), '='), '+/', '-_');
};
$a = 'hello';
echo CRC32($a); // 907060870
echo $shortHash($a); // kHBghwA
echo md5($a) . PHP_EOL; // 5d41402abc4b2a76b9719d911017c592
echo $shortHash($a, 'md5'); // XUFAKrxLKna5cZ2REBfFkg
echo hash('sha256', $a); // 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
echo $shortHash($a, 'sha256'); // LPJNul-wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ