자동등록방지 암호를 숫자만 나오도록 할려면
// 자동등록기를 막아볼까요?
$is_norobot = false;
if ($default[de_use_norobot]) {
// 임의의 md5 문자열을 생성
$tmp_str = substr(md5(time()),0,10);
// 난수 발생기
srand(make_seed());
$keylen = strlen($tmp_str);
$div = (int)($keylen / 2);
while (count($arr) < 3) {
unset($arr);
for ($i=0; $i<$keylen; $i++) {
$rnd = rand(1, $keylen);
$arr[$rnd] = $rnd;
if ($rnd > $div) { break; }
}
}
이 부분에서 문자열이 아니라 숫자를 생성해야 할 것 같은데 어떻게 고쳐야 하나요?
$is_norobot = false;
if ($default[de_use_norobot]) {
// 임의의 md5 문자열을 생성
$tmp_str = substr(md5(time()),0,10);
// 난수 발생기
srand(make_seed());
$keylen = strlen($tmp_str);
$div = (int)($keylen / 2);
while (count($arr) < 3) {
unset($arr);
for ($i=0; $i<$keylen; $i++) {
$rnd = rand(1, $keylen);
$arr[$rnd] = $rnd;
if ($rnd > $div) { break; }
}
}
이 부분에서 문자열이 아니라 숫자를 생성해야 할 것 같은데 어떻게 고쳐야 하나요?
|
댓글을 작성하시려면 로그인이 필요합니다.
로그인
댓글 4개
시간을 암호환 한것에서 일부를 추출한 것이 난수가 되는 것 입니다.
이부분을 해결하시려면 10자리만큼 난수를 생성하시면 될 것 입니다.
테스트는 안해 봣습니다. 아래처럼 바꿔보세요.
$tmp_str = substr(rand(0,999999999999999),0,10);
==>
$tmp_str = rand(1000000000,9999999999);
^^
이렇게 하시면 됩니다.