Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP mt_rand() 함수 완벽 정리 – 메르센 트위스터 알고리즘으로 난수 생성하기

mt_rand() 함수란?

PHP의 mt_rand() 함수는 난수(random number)를 생성하는 데 사용되는 내장 함수입니다. 이 함수는 메르센 트위스터(Mersenne Twister) 알고리즘을 기반으로 동작하며, 기존의 rand() 함수보다 더 빠른 실행 속도와 우수한 난수 분포 특성을 제공합니다.

참고: PHP 7.1.0 버전부터 rand() 함수가 내부적으로 mt_rand()의 별칭(alias)이 되어 두 함수는 동일하게 동작합니다.

문법(Syntax)

mt_rand()
또는
mt_rand(min, max)

매개변수(Parameters)

  • min − 반환될 수 있는 가장 작은 값입니다. 기본값은 0입니다.

  • max − 반환될 수 있는 가장 큰 값입니다.

반환값(Return)

mt_rand() 함수는 min(또는 0)과 max 사이 범위에서 임의의 정수를 반환합니다. 만약 max 값이 min 값보다 작으면 FALSE를 반환합니다.

예제 1

다음은 100부터 200 사이의 난수를 생성하는 예제입니다.

<?php
   echo mt_rand(100, 200);
?>

출력 결과

144

실행할 때마다 출력되는 값은 달라질 수 있습니다.

예제 2

매개변수를 지정하지 않고 호출하면, 0부터 mt_getrandmax()가 반환하는 최대값 사이의 임의의 정수를 얻을 수 있습니다.

<?php
   echo mt_rand();
?>

출력 결과

132850920

보안 관련 참고 사항

mt_rand()로 생성된 난수는 암호학적으로 안전하지 않습니다(cryptographically insecure). 따라서 비밀번호, 인증 토큰, 세션 키처럼 보안이 중요한 용도에는 random_int() 또는 random_bytes() 함수를 사용하는 것이 권장됩니다.