random_bytes
(PHP 7, PHP 8)
random_bytes — 암호학적으로 안전한 의사 난수 바이트 생성
설명
random_bytes(int $length
): string
salts, 키 또는 초기화 벡터를 생성할 때와 같이 암호화 사용에 적합한 임의 길이의 암호화 임의 바이트 문자열을 생성합니다.
이 함수에 사용된 임의성의 소스는 다음과 같습니다.
- Windows에서는 » CryptGenRandom()이 항상 사용됩니다. PHP 7.2.0부터 » CNG-API가 항상 대신 사용됩니다.
- Linux에서는 가능한 경우 » getrandom(2) syscall이 사용됩니다.
- 다른 플랫폼에서는 /dev/urandom이 사용됩니다.
- 앞서 언급한 소스를 사용할 수 없으면 예외가 발생합니다.
참고: 이 함수는 PHP 7.0에서 PHP에 추가되었지만 » 사용자 영역 구현은 PHP 5.2~5.6(포함)에서 사용할 수 있습니다.
매개변수
length
- 바이트 단위로 반환되어야 하는 임의 문자열의 길이입니다.
반환 값
암호화된 보안 난수 바이트의 요청된 수를 포함하는 문자열을 반환합니다.
오류/예외
- 임의성의 적절한 소스를 찾을 수 없으면 예외가 발생합니다.
- 잘못된 매개변수가 제공되면 TypeError가 발생합니다.
- 유효하지 않은 바이트
length
가 지정되면 오류가 발생합니다.
Examples
예제 #1 random_bytes() 예제
<?php
$bytes = random_bytes(5);
var_dump(bin2hex($bytes));
?>
위의 예는 다음과 유사한 결과를 출력합니다.
string(10) "385e33f741"
기타
- random_int() - 암호학적으로 안전한 의사 난수 정수 생성
- openssl_random_pseudo_bytes() - 의사 난수 바이트 문자열 생성
- bin2hex() - 이진 데이터를 16진수 표현으로 변환