rand() 함수
일반적으로 PHP에서 랜덤한 값을 출력한다고 한다면
아래와 같이 숫자로 임의의 값을 도출할 수 있습니다.
하지만 이런식의 랜덤값은 출력하다보면 언젠가는 중복될 여지가 남아있습니다.
<?php
// 0부터 getrandmax() 크기 사이의 임의의 난수 반환
// getrandmax() 참조 : https://www.php.net/manual/en/function.getrandmax.php
echo "출력 : ".rand();
// 1000부터 2000사이의 임의의 난수 반환
echo "출력 : ".rand(1000,2000);
?>
mt_rand() 함수
rand 함수와 거의 동일하지만 표시되는 난수 범위가 다릅니다.
mt_rand가 rand에 비해 실행 속도도 빠르고 생성할 수 있는 난수의 범위가 커서
mt_rand 사용이 권장됩니다.
rand 함수 : 윈도우에서 0 ~ 32,767 까지 난수 생성, 리눅스에서 0 ~ 2,147,483,647 까지 난수 생성.
mt_rand 함수 : 윈도우, 리눅스 환경 모두 0 ~ 2,147,483,647 까지 난수 생성.
uniqid() 함수
일반적으로 사용자 고유 식별 값 등 유니크한 Key 값이 필요해질 때 사용합니다.
현재 시간의 100만분의 1초를 16진수로 변환하기 때문에 중복확률이 매우 낮고
난수, 암호화 과정 등을 거치기 때문에 중복될 확률이 거의 없어 세션 할당에 많이 사용합니다.
<?php
//13자리의 16진수 문자열이 출력됩니다.
echo uniqid();
//접두어가 있다면 13자리 16진수 문자열 앞에 접두사가 붙습니다.
echo uniqid('Test_');
//두번째 인수에 true를 지정하면 23자리의 16진수 문자열이 출력됩니다.
echo uniqid('', tru);
//md5 암호화와 난수를 활용하여 더욱 복잡한 고유키를 만듭니다.
//rand 함수는 윈도우에서 0~32767, 리눅스에서 2147483647까지 난수가 생성
//mt_rand 함수는 윈도우와 리눅스에서 2147483647까지의 난수가 생성됩니다.
echo md5(uniqid(rand(), true));
echo md5(uniqid(mt_rand(), true));
?>
'Web' 카테고리의 다른 글
[PHP] 한글 문자열 자르기 한글 깨짐 방지 mb_substr() (0) | 2023.03.15 |
---|---|
[Javasciprt] 주요 QR코드 스캔 라이브러리 3가지 비교 (0) | 2021.11.10 |
[Raspberry Pi + PHP] Tesseract OCR(광학) 텍스트 읽기 (0) | 2021.11.10 |
ASP를 활용한 MSSQL DB 접속하기 (0) | 2021.04.21 |