php 에서 사용자 암 호 를 만 드 는 두 가지 방식

사용자 시스템 에서 사용자 의 비밀 번 호 를 만 드 는 것 은 매우 중요 하 다.간단 한 비밀 번 호 는 반드시 일부 불법 사용자 에 게 문 호 를 열 어 줄 것 이다.여기 서 몇 가지 흔히 볼 수 있 는 암호 생 성 방식 을 보 여 준다.
비밀번호 
이런 것 은 가장 흔히 볼 수 있 는 암호 화 방식 이 라 고 할 수 있다.
md5 는 비대 칭 암호 화 에 속 하 는 것 으로 이러한 암호 화 방식 은 사실 안전 하고 안전 하 다 고 말 할 수 있 으 며,해시 충돌 의 존재 로 인해 구멍 이 생 길 수 있다.
암호 화 할 때 헷 갈 리 는 문자열 을 넣 는 것 이 좋 습 니 다.다음 과 같 습 니 다.

<?php
//  
function md5_password($password, $hash = 'autofelix_')
{
    return md5($hash . $password);
}
 
//  
$userinfo = /**        **/;
 
if ($userinfo['password'] !== md5_password($password)) {
    /**        **/
}
 
/**     ,        **/
2.hash 비밀번호
이런 암호 화 방식 은 주로 단 방향 산열 알고리즘 을 사용 하여 암호 의 산열 을 만든다
PASSWORD_DEFAULT bcrypt 알고리즘 사용
PASSWORD_BCRYPT 쓰다 CRYPT_BLOWFISH 알고리즘 해시 생 성
PASSWORD_ARGON2I Argon 2 해시 알고리즘 을 사용 하여 해시 생 성
이러한 암호 화 방식 의 데이터베이스 에 저 장 된 결 과 는 60 자 를 초과 할 수 있 으 므 로 varchar 길 이 는 255 를 설정 하 십시오.

<?php
//  
function generatePassword($password)
{
   return password_hash($password, PASSWORD_DEFAULT);
}
 
//  
function verifyPassword($password, $hashPassword)
{
   return password_verify($password, $hashPassword);
}
 
//    :$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a
PS:php 에서 무 작위 비밀 번 호 를 만 드 는 몇 가지 방법
방법 1:
1.33-126 에서 무 작위 정 수 를 생 성 합 니 다.예 를 들 어 35.
2.35 를 대응 하 는 ASCII 코드 문자 로 변환 합 니 다.예 를 들 어 35 대응\#
3.상기 1,2 단계 n 회 반복,n 자리 로 연 결 된 비밀번호
이 알고리즘 은 주로 두 함수,mt 를 사 용 했 습 니 다.rand(int$min,int$max)함 수 는 무 작위 정 수 를 생 성 하 는 데 사 용 됩 니 다.그 중에서$min-$max 는 ASCII 코드 의 범위 입 니 다.여 기 는 33-126 을 취하 고 필요 에 따라 범 위 를 조정 할 수 있 습 니 다.예 를 들 어 ASCII 코드 표 에서 97-122 비트 는 a-z 의 영문 자모 에 대응 하고 구체 적 으로 ASCII 코드 표를 참고 할 수 있 습 니 다.chr(int$ascii)함 수 는 대응 하 는 정수$ascii 를 대응 하 는 문자 로 변환 하 는 데 사 용 됩 니 다.

function create_password($pw_length = 8){
 $randpwd = '';
 for ($i = 0; $i < $pw_length; $i++) {
  $randpwd .= chr(mt_rand(33, 126));
 }
 return $randpwd;
}

//      ,      $pw_length = 6
echo create_password(6);

방법 2:
1.하나의 문자열$chars 를 미리 설정 합 니 다.a-z,A-Z,0-9,그리고 일부 특수 문 자 를 포함 합 니 다.
2.$chars 문자열 에서 무 작위 로 문 자 를 가 져 옵 니 다.
3.두 번 째 n 번 반복 하면 길이 n 의 비밀 번 호 를 얻 을 수 있 습 니 다.

function generate_password( $length = 8 ) {
 //      ,           
 $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_ []{}<>~`+=,.;:/?|';

 $password = '';
 for ( $i = 0; $i < $length; $i++ ) {
  //             
  //        substr   $chars        ;
  //           $chars      
  // $password .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
  $password .= $chars[ mt_rand(0, strlen($chars) - 1) ];
 }

 return $password;
}

방법 3:
1.문자 배열$chars 를 미리 설정 합 니 다.a-z,A-Z,0-9,그리고 일부 특수 문 자 를 포함 합 니 다.
2,array 를 통 해rand()는 배열$chars 에서$length 요 소 를 무 작위 로 선택 합 니 다.
3.가 져 온 키 이름 배열$keys 에 따라 배열$chars 에서 문자 조합 문자열 을 추출 합 니 다.이 방법의 단점 은 같은 문자 가 중복 되 지 않 는 다 는 것 이다.

function make_password( $length = 8 ) {
 //      ,           
 $chars = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 
 'i', 'j', 'k', 'l','m', 'n', 'o', 'p', 'q', 'r', 's', 
 't', 'u', 'v', 'w', 'x', 'y','z', 'A', 'B', 'C', 'D', 
 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L','M', 'N', 'O', 
 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y','Z', 
 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '!', 
 '@','#', '$', '%', '^', '&', '*', '(', ')', '-', '_', 
 '[', ']', '{', '}', '<', '>', '~', '`', '+', '=', ',', 
 '.', ';', ':', '/', '?', '|');

 //   $chars      $length        
 $keys = array_rand($chars, $length); 

 $password = '';
 for($i = 0; $i < $length; $i++) {
  //   $length            
  $password .= $chars[$keys[$i]];
 }

 return $password;
}

방법 4:
이 방법 은 본 고가 파란색 이상 에 전 재 된 후에 한 네티즌 이 제공 한 새로운 방법 이다.알고리즘 이 간단 하고 코드 가 짧다.단지 md5()함수 의 반환 값 때문에 생 성 된 비밀 번 호 는 자모 와 숫자 만 포함 하지만 좋 은 방법 이 라 고 할 수 있다.알고리즘 사상:
1.time()현재 유 닉 스 타임 스탬프 가 져 오기
2.첫 번 째 로 가 져 온 시간 스탬프 를 md5()암호 화 합 니 다.
3.두 번 째 암호 화 결 과 를 n 자리 에서 원 하 는 암 호 를 캡 처 합 니 다.

function get_password( $length = 8 ) {
 $str = substr(md5(time()), 0, $length);
 return $str;
}
php 가 사용자 비밀 번 호 를 만 드 는 두 가지 방식 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 php 가 사용자 비밀 번 호 를 만 드 는 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 저 희 를 많이 사랑 해 주세요!

좋은 웹페이지 즐겨찾기