是否有单向散列算法,可以给出64位的整数散列? 尝试将md5十六进制转换为整数(在PHP中使用gmp库存储大型int),但我会失去精度。与SHA1相同。
是否存在一个现有算法(在php或其他方面),它将给出一个int或十六进制,我可以将其转换为整数(最多64位)。
答案 0 :(得分:3)
有plenty of algorithms,要将它们转换为整数,您可以使用gmp
扩展名:
$base16 = hash('md5', 'hello world');
$base10 = gmp_strval(gmp_init(strtoupper($base16), 16), 10);
其中$base16
是哈希函数返回的十六进制摘要。
答案 1 :(得分:2)
您可以print_r(hash_algos());
查看所有可用PHP哈希算法的列表,并选择适合您需求的算法:
Array
(
[0] => md2
[1] => md4
[2] => md5
[3] => sha1
[4] => sha224
[5] => sha256
[6] => sha384
[7] => sha512
[8] => ripemd128
[9] => ripemd160
[10] => ripemd256
[11] => ripemd320
[12] => whirlpool
[13] => tiger128,3
[14] => tiger160,3
[15] => tiger192,3
[16] => tiger128,4
[17] => tiger160,4
[18] => tiger192,4
[19] => snefru
[20] => snefru256
[21] => gost
[22] => adler32
[23] => crc32
[24] => crc32b
[25] => salsa10
[26] => salsa20
[27] => haval128,3
[28] => haval160,3
[29] => haval192,3
[30] => haval224,3
[31] => haval256,3
[32] => haval128,4
[33] => haval160,4
[34] => haval192,4
[35] => haval224,4
[36] => haval256,4
[37] => haval128,5
[38] => haval160,5
[39] => haval192,5
[40] => haval224,5
[41] => haval256,5
)