Php 64bit整数哈希

时间:2012-05-26 00:09:41

标签: php

是否有单向散列算法,可以给出64位的整数散列? 尝试将md5十六进制转换为整数(在PHP中使用gmp库存储大型int),但我会失去精度。与SHA1相同。

是否存在一个现有算法(在php或其他方面),它将给出一个int或十六进制,我可以将其转换为整数(最多64位)。

2 个答案:

答案 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
)