PHP에서 비밀번호 생성

Subodh Poudel 2023년1월30일
  1. rand()함수를 사용하여 PHP에서 임의 암호 생성을위한 임의 배열 인덱스 선택
  2. openssl_random_pseudo_bytes()bin2hex()함수를 사용하여 PHP에서 임의 비밀번호 생성
  3. substr()str_shuffle()함수를 사용하여 PHP에서 주어진 영숫자 문자열에서 임의 암호 생성
PHP에서 비밀번호 생성

rand()함수를 사용하여 PHP에서 임의의 비밀번호를 생성하는 방법을 소개합니다. 이 방법은 소문자 및 대문자 알파벳과 숫자의 조합을 사용하여 암호를 구성합니다. rand()함수는 암호 조합을 선택하기 위해 배열 인덱스 인 임의의 정수를 반환합니다.

또한openssl_random_pseudo_bytes()bin2hex()함수를 사용하여 PHP에서 임의의 비밀번호를 생성하는 또 다른 방법을 소개합니다.

이 기사는substr()str_shuffle()함수를 사용하여 PHP에서 임의의 비밀번호를 생성하는 또 다른 방법을 보여줍니다. 이 방법은 또한 프로그램에 제공된 영숫자 값을 사용하여 임의 암호를 형성합니다.

rand()함수를 사용하여 PHP에서 임의 암호 생성을위한 임의 배열 인덱스 선택

rand()함수를 사용하여 PHP에서 임의의 암호를 생성 할 수 있습니다. rand()함수는 제공된 매개 변수 범위에서 임의의 정수를 리턴합니다. 이 함수는 두 개의 정수 값을 매개 변수로 사용합니다. 암호를 결합 할 수있는 알파벳과 숫자의 문자열을 정의 할 수 있습니다. 난수는 배열을 인덱싱하여 임의의 알파벳 또는 숫자를 선택합니다. rand()함수를 반복하여 원하는 길이의 비밀번호를 만들 수 있습니다.

예를 들어,$comb변수를 만들고 모든 소문자 및 대문자 알파벳과 0에서 10까지의 숫자로 구성된 문자열을abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890으로 저장합니다. array()함수를 사용하여$pass배열을 만듭니다. 문자열$comb의 길이를$combLen변수에 저장합니다. for루프를 만들고 루프를 8 번 반복합니다. 루프 내에서0$combLen변수와 함께rand()함수를 매개 변수로 사용하고 값을$n변수에 저장합니다. 그런 다음$comb[$n]$pass배열에 할당합니다. 루프 외부에서implode()함수를 사용하여 배열을 문자열로 변환합니다.

아래 예에서는$comb변수에 저장된 조합에서 임의의 비밀번호를 생성합니다. rand()함수는 0부터 문자열$comb길이까지 임의의 정수를 선택합니다. 임의의 정수는 조합에서 임의의 영숫자 값을 선택하는 인덱스로 사용됩니다. 루프는 8 번 실행되고 8 개의 임의의 영숫자 값을 선택하고 마지막으로 임의의 암호를 형성합니다. rand()함수에 대한 자세한 내용은 PHP 설명서를 참조하십시오.

예제 코드 :

# php 7.x
<?php
 $comb = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
 $pass = array(); 
 $combLen = strlen($comb) - 1; 
 for ($i = 0; $i < 8; $i++) {
     $n = rand(0, $combLen);
     $pass[] = $comb[$n];
 }
 print(implode($pass)); 
?>

출력:

aPsQWlzh

openssl_random_pseudo_bytes()bin2hex()함수를 사용하여 PHP에서 임의 비밀번호 생성

openssl_random_pseudo_bytes()함수를 사용하여 의사 랜덤 바이트 문자열을 생성 할 수 있습니다. 함수의 매개 변수로 정수 값을 지정하여 생성 할 원하는 바이트 수의 길이를 정의 할 수 있습니다. bin2hex()함수는 2 진 데이터를 16 진 표현으로 변환합니다. 이 함수를 사용하여 임의로 생성 된 바이트 문자열을 16 진수 표현으로 변환하고 암호를 형성 할 수 있습니다. 이 메서드는 영숫자 값으로 구성된 임의 암호를 생성합니다.

예를 들어,$bytes변수를 생성하고openssl_random_pseudo_bytes()함수로 할당합니다. 기능에 대한 매개 변수로4를 지정하십시오. 다른 변수$pass를 만들고 여기에bin2hex()함수를 씁니다. 함수에$bytes변수를 지정하십시오. echo문을 사용하여$pass변수를 인쇄합니다.

아래 예에서openssl_random_pseudo_bytes()함수의4는 무작위로 생성 될 바이트 수를 나타냅니다. bin2hex()함수는 바이트를 해당하는 16 진수로 변환합니다. 4 바이트 문자열의 16 진수 변환은 8이되기 때문에 무작위로 생성 된 암호의 길이는 8입니다.bin2hex()함수에 대한 자세한 내용은 PHP 설명서를 확인하십시오.

예제 코드 :

#php 7.x
<?php
$bytes = openssl_random_pseudo_bytes(4);
$pass = bin2hex($bytes);
echo $pass;
?>

출력:

ed203eef

substr()str_shuffle()함수를 사용하여 PHP에서 주어진 영숫자 문자열에서 임의 암호 생성

str_shuffle()메소드를 사용하여 주어진 문자열을 무작위로 섞을 수 있습니다. 이 함수는 0에서 9까지의 숫자와 함께 소문자 및 대문자 알파벳 조합의 문자열을 섞습니다. 따라서 가능한 모든 경우에 대해 하나의 순열을 형성합니다. 셔플 된 문자열에substr()함수를 사용하여 문자의 일부를 선택할 수 있습니다. 따라서 임의의 암호를 생성 할 수 있습니다.

예를 들어,$comb변수를 만들고 여기에 문자열 값abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789를 저장합니다. str_shuffle()을 사용하여$comb변수를 섞고$shfl변수에 저장합니다. 그런 다음substr()함수와$shfl변수,08을 매개 변수로 사용합니다. $pwd변수에 함수를 저장하고 변수를 인쇄합니다.

아래 예에서는 첫 번째 방법과 동일한 영숫자 값 세트를 사용합니다. 임의로 생성 된 암호는 이러한 영숫자 값으로 구성됩니다. str_shuffle()함수는 영숫자 값을 섞고 무작위 순열을 만듭니다. substr()함수에서08을 사용하여 셔플 된 순열의 첫 번째 인덱스에서 8 개의 문자를 선택했습니다. 따라서 8 자리 임의 암호를 생성합니다.

코드 예 :

#php 7.x
<?php
$comb = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$shfl = str_shuffle($comb);
$pwd = substr($shfl,0,8);
echo $pwd;
?>

출력:

jenZq3lY
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

관련 문장 - PHP Password