이번 난수 생성기는 특수문자 하나를 포함하여 보안성을 높였습니다.

 <?php  
 
function makeRand($len=6
) { 
    if(!
ereg("^(0|[1-9]+$)"$len) || ($len 6
)) { 
        
$len 6

    } 
    
srand((float) microtime() * 10000000
); 
    
$schar array_rand($specialchar = array('@','#','%','&','*','+'
)); 


    
$rand_keys array_merge(range('A''Z'), range('z''a'), range(19
)); 
    
shuffle($rand_keys
); 


    
$data false
;
    for(
$i=0$i<$len$i
++){ 
        if(
$i === $schar
){ 
            
$data .= $specialchar[$schar
]; 
        } else { 
            
$data .= $rand_keys[$i
]; 
        } 
    } 


    return 
$data

 }  
 
$rand makeRand
(); 
 echo 
$rand
// 결과: nk%ma3N 


 // <input type='text' name='rand' value='aDx*c6n'> 
 // 난수 nk%ma3N, 사용자 aDx*c6n  
 
if($rand !== $_POST['rand'
]){ 
    exit(
'입력하신 난수와 생성한 난수가 틀립니다. 정상적인 방법으로 접근해 주세요.'
); 
 } 
 
?> 



관련글: 2011/06/11 - [phP 함수 레퍼런스/함수 활용] - 난수 생성기
           2011/06/13 - [phP 함수 레퍼런스/배열 함수] - 배열을 임의의 순서로 섞는 shuffle 함수
블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요