可能重复:
为两个数字的组合生成一个唯一值
有没有一种方法可以散列两个用户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));