哈希-总是为给定的一对用户ID获取唯一的哈希


Hashing - Always get unique hash for a given pair of user ids

可能重复:
为两个数字的组合生成一个唯一值

有没有一种方法可以散列两个用户id(整数(,并总是为给定的一对用户id获得一个唯一的散列?

例如:

a = hash( x , y );

b = hash( y , x );

在上面的例子中,对于INT(11((MySQL(范围内的任何给定的id对,a和b必须始终相等。

纯PHP是编程环境。

欢迎各位提出任何建议。。。

对数字求和不会产生唯一的散列。例如,1+3==2+2。这样做:

function myHash( $id1, $id2 ) {
    $ids = array( $id1, $id2 ); // or func_get_args() to support variable number
    sort( $ids );
    return md5( implode( '-', $ids ); // md5() == any other hashing function
}
myHash( x, y ) == myHash( y, x );

使用http://php.net/manual/en/function.md5.php

像这样:$hash = md5(sprintf("%05d/%05d", $id1, $id2));