从其他两个字符串创建唯一的字符串(一个是独特的,另一种是不)
问题描述:
我要生成两个字符串的唯一密钥,string a
和string b
。 string a
已经是唯一的长度为8到20的密钥,而字符串b不是唯一的,长度为8到20的长度相同。目标密钥必须难以猜测,唯一且固定长度为10个字符。我尝试了mad5()
,uniqueid()
和rand()
函数的某些组合,但目标字符串每次都超过了10个chars
的限制。我怎样才能得到10 chars
的钥匙?从其他两个字符串创建唯一的字符串(一个是独特的,另一种是不)
答
假设你的目标密钥存储在数据库中。
$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;
希望这会有所帮助。
答
你可以把从A和B中的所有字符到一个数组,洗牌数组,然后在循环中随机拉出来,从0到9