2

Is there a one way hashing algorithm, that can give an integer hash of 64 bits? Tried converting md5 hex into integer(storing large int using gmp library in PHP), but I'll lose precision. Same with SHA1.

Is there an existing algorithm (in php or otherwise), that will give a int or a hex which I can convert to an integer(max 64 bits).

4

2 回答 2

3

很多算法,要将它们转换为整数,您可以使用gmp扩展:

$base16 = hash('md5', 'hello world');
$base10 = gmp_strval(gmp_init(strtoupper($base16), 16), 10);

$base16哈希函数返回的十六进制摘要在哪里。

于 2012-05-26T00:13:57.180 回答
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
)
于 2012-05-26T00:13:48.897 回答