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 생성