openssl_random_pseudo_bytes
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
openssl_random_pseudo_bytes - 의사 난수 바이트 문자열 생성
설명
openssl_random_pseudo_bytes(int $length
, bool &$strong_result
= null
): string
length
매개변수에 의해 결정된 바이트 수를 사용하여 의사 난수 바이트 문자열을 생성합니다.
또한 강력한 암호화 알고리즘이 의사 난수 바이트를 생성하는 데 사용되었는지 여부를 나타내며 선택적 strong_result
매개변수를 통해 이를 수행합니다. 이것이 false
인 경우는 드물지만 일부 시스템은 손상되었거나 오래되었을 수 있습니다.
매개변수
length
- 원하는 바이트 문자열의 길이입니다. 양의 정수여야 합니다. PHP는 이 매개변수를 사용하기 위해 널이 아닌 정수로 캐스트하려고 시도합니다.
strong_result
- 함수에 전달되면 사용된 알고리즘이 "암호학적으로 강력한지" 여부를 결정하는 부울 값을 보유합니다(예: GPG, 비밀번호 등과 함께 사용하기에 안전한지 여부). 그렇다면
true
, 그렇지 않으면false
반환 값
성공하면 생성된 바이트 문자열을 반환하고 실패하면 false
를 반환합니다.
변경 로그
버전 | 설명 |
---|---|
8.0.0 | strong_result 는 이제 null을 허용합니다. |
Examples
예제 #1 openssl_random_pseudo_bytes() 예제
<?php
for ($i = 1; $i <= 4; $i++) {
$bytes = openssl_random_pseudo_bytes($i, $cstrong);
$hex = bin2hex($bytes);
echo "Lengths: Bytes: $i and Hex: " . strlen($hex) . PHP_EOL;
var_dump($hex);
var_dump($cstrong);
echo PHP_EOL;
}
?>
위의 예는 다음과 유사한 결과를 출력합니다.
Lengths: Bytes: 1 and Hex: 2 string(2) "42" bool(true) Lengths: Bytes: 2 and Hex: 4 string(4) "dc6e" bool(true) Lengths: Bytes: 3 and Hex: 6 string(6) "288591" bool(true) Lengths: Bytes: 4 and Hex: 8 string(8) "ab86d144" bool(true)
기타
- random_bytes() - 암호학적으로 안전한 의사 난수 바이트 생성
- bin2hex() - 이진 데이터를 16진수 표현으로 변환
- crypt() - 단방향 문자열 해싱
- mt_rand() - Mersenne Twister 난수 생성기를 통해 난수 생성
- uniqid() - 고유 ID 생성