Вы можете использовать base_convert для преобразования шестнадцатеричного числа в десятичное число и наоборот. Если вы хотите преобразовать целые числа (как строку) в шестнадцатеричное, вы ограничены 32-битными числами или меньше, я верю (PHP_INT_MAX).
php -r 'foreach (hash_algos() as $hash) { echo $hash, "\n", $a = hash($hash, "test"), "\n", $b = base_convert($a, 16, 10), "\n", $c = base_convert($b, 10, 16), "\n", ($c === $a ? "yes" : "no"), "\n\n"; }' > hashes.txt
Из имеющихся у меня хэшей это те, которые я мог преобразовать между десятичным и шестнадцатеричным:
adler32
c1015d04
3238092036
c1015d04
yes
crc32
accf8b33
2899282739
accf8b33
yes
crc32b
d87f7e0c
3632233996
d87f7e0c
yes