PHP 如何随机生成24位 MD5加密后的字符串

function GetString ( $length = 24 ) {
//里面怎么写
}

第1个回答  2015-11-13
md5是32位的,所以你需要先生成md5,再进行字符串截取,截取24个长度就是24位了。

生成随机的为了不重复,可以使用当前时间戳,在加上随机数就行

$date_string = date('Y') . date('m') . date('d') . date('H') . date('i') . date('s') . mt_rand(100000, 999999);

$md5_string = md5($date_string);

$string = substr($md5_string, 0, 24);

echo $string;
第2个回答  推荐于2018-04-06
$a = mt_rand(10000000,99999999);随机8位
$a .= mt_rand(10000000,99999999);随机16位
$a .= mt_rand(10000000,99999999);随机24位
//转换MD5
$b=MD5($a);//随机24位 + MD5
第3个回答  2015-12-02
MD5只有32位和16位的,如果需要24位的,可以通过strlen函数截取获得24位的加密。
第4个回答  2015-11-23
php md5加密后默认是32位的,没有加密成24位的,你可以你可以把32位的用substr() 方法截取前面24位!
第5个回答  推荐于2016-08-19
$seed=md5(microtime());
$pwd='';
for($i=0;$i<$length;$i++){
$pwd.=$seed{mt_rand(0,31)};
}
$hash=md5($pwd);
return substr($hash,0,$length);本回答被提问者和网友采纳
相似回答