PHP 7-CSPRNG

PHP 7에서는 크로스 플랫폼 방식으로 암호 학적으로 안전한 정수와 문자열을 생성하기 위해 다음 두 가지 새로운 함수가 도입되었습니다.

  • random_bytes() − 암호 학적으로 안전한 의사 랜덤 바이트를 생성합니다.

  • random_int() − 암호 학적으로 안전한 의사 랜덤 정수를 생성합니다.

random_bytes ()

random_bytes ()는 솔트, 키 또는 초기화 벡터를 생성 할 때와 같이 암호화 용도에 적합한 임의 길이의 암호화 임의 바이트 문자열을 생성합니다.

통사론

string random_bytes ( int $length )

매개 변수

  • length − 반환되어야하는 임의 문자열의 길이 (바이트).

반환 값

  • 요청 된 수의 암호화 보안 임의 바이트가 포함 된 문자열을 반환합니다.

오류 / 예외

  • 적절한 임의성 소스를 찾을 수없는 경우 예외가 발생합니다.

  • 유효하지 않은 매개 변수가 주어지면 TypeError 던져 질 것입니다.

  • 유효하지 않은 길이의 바이트가 주어지면 오류가 발생합니다.

<?php
   $bytes = random_bytes(5);
   print(bin2hex($bytes));
?>

다음 브라우저 출력을 생성합니다.

54cc305593

random_int ()

random_int() 편향되지 않은 결과가 중요한 경우에 사용하기에 적합한 암호화 무작위 정수를 생성합니다.

통사론

int random_int ( int $min , int $max )

매개 변수

  • min − 반환 할 가장 낮은 값입니다. PHP_INT_MIN 또는 더 높게.

  • max -반환 할 가장 높은 값이며 이보다 작거나 같아야합니다. PHP_INT_MAX.

반환 값

  • 최소에서 최대까지의 범위에서 암호화로 안전한 임의의 정수를 반환합니다.

오류 / 예외

  • 적절한 임의성 소스를 찾을 수없는 경우 Exception 던져 질 것입니다.

  • 유효하지 않은 매개 변수가 주어지면 TypeError 던져 질 것입니다.

  • 최대 값이 최소값보다 작 으면 Error 던져 질 것입니다.

<?php
   print(random_int(100, 999));
   print("");
   print(random_int(-1000, 0));
?>

다음 브라우저 출력을 생성합니다.

614
-882