2013-11-27 3 views
0

다음 코드를 사용하여 임의의 문자열을 생성 한 다음 데이터베이스에 삽입하고 충돌이 없는지 알고 싶습니다. 충돌이없는 더 좋은 방법이 있습니까? uniqid()충돌이없는 임의의 문자열 생성

function generate_random_name() 
{ 
$length = 12; 
$charactersa = "mRdxIU2r3dxa1B2c3D4e5F6g7H8i9Jqk1L2m13N1oF5P6qW7R1Ls9T20u21V2w3X4y2Z2x6"; 
$real_string_legntha = strlen($charactersa) - 1; 
$stringa=rand(12345,09876); 
for ($oluvica = 0; $oluvica < $length; $oluvica++) 
{ 
    $stringa .= $charactersa[mt_rand(0, $real_string_legntha)]; 
} 
return $stringa; 

} 
$unique = generate_random_name(); 

답변

1

만들기 사용 충분 것 time()

<?php 
echo uniqid(time(), true); 

이를 결합 [more entropy와 플래그가 활성화]. sha-256 및 sha-512와 같은 커플 링 해시는보다 고유 한 출력을 생성합니다.

일부
+1

정확히 내가 생각한 것입니다. 좋은 대답 ;-) –

+0

그래서'$ stringa. = uniqid ($ charactersa [mt_rand (0, $ real_string_legntha)]);' – user3006683