从另外两个字符串创建唯一字符串(一个是唯一的,另一个不是)

时间:2017-03-07 19:39:47

标签: php string unique

我想从两个字符串 string a string b 生成一个唯一键。 string a 已经是长度为8到20 chars的唯一键,而字符串b不是唯一的,长度相同,为8到20 chars。目标键必须难以猜测,唯一且具有10个字符的固定长度。我尝试了mad5()uniqueid()rand()函数的某些组合,但目标字符串每次都超过10 chars的限制。如何获得10 chars的密钥?

2 个答案:

答案 0 :(得分:2)

你可以将a和b中的所有字符放入一个数组中,对数组进行洗牌,然后在0到9的循环中随机抽出它们

答案 1 :(得分:1)

假设您的目标密钥存储在数据库中。

$string1 = 'some_unique_string';
$string2 = 'any_other_string';

do{
   $target_string = sub_str(str_shuffle($string1.$string2),0,10);
   $sql='select * from table_name where targetKeyColoumn = "'.$$target_string.'"'; //add sql injection prevention
   $result = mysqli_query($dbConectionResource, $sql);
   $row_cnt = mysqli_num_rows($result);
  }while($row_cnt); //if its 0, come out from loop

echo $target_string;

希望这会有所帮助。