>  기사  >  백엔드 개발  >  PHP에서 일반적으로 사용되는 암호화 방법은 무엇입니까?

PHP에서 일반적으로 사용되는 암호화 방법은 무엇입니까?

青灯夜游
青灯夜游원래의
2021-03-26 11:42:266614검색

PHP에서 일반적으로 사용되는 암호화 방법은 다음과 같습니다. 1. md5() 함수를 사용합니다. 3. sha1() 함수를 사용합니다. 5. urlencode() 함수를 사용합니다. base64_encode() 함수; 6,password_hash() 함수를 사용하세요.

PHP에서 일반적으로 사용되는 암호화 방법은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

일반적으로 사용되는 PHP 암호화 방법

1. MD5 암호화

string md5 ( string $str [, bool $raw_output = false ] )

매개변수

  • str -- 원본 문자열.

  • raw_output -- 선택적 raw_output이 TRUE로 설정된 경우 MD5 메시지 다이제스트는 길이가 16바이트인 원시 바이너리 형식으로 반환됩니다.

2. Crype 암호화

crypt()는 표준 UNIX DES 알고리즘 또는 시스템에서 사용할 수 있는 기타 대체 알고리즘을 기반으로 해시 문자열을 반환합니다.

string crypt ( string $str [, string $salt ] )

Parameters

  • str -- 해시할 문자열입니다.

  • salt - 선택적 소금 값 문자열입니다. 제공되지 않으면 알고리즘 동작은 다양한 알고리즘 구현에 따라 결정되며 예측할 수 없는 결말로 이어질 수 있습니다.

이 역시 되돌릴 수 없는 암호화입니다

3. Sha1 암호화

string sha1 ( string $str [, bool $raw_output = false ] )

Parameters

  • str - 입력 문자열입니다.

  • raw_output -- 선택적 raw_output 매개변수가 TRUE로 설정된 경우 sha1 다이제스트는 길이가 20자인 원시 형식으로 반환됩니다. 그렇지 않으면 반환 값은 40자의 16진수입니다.

역시 되돌릴 수 없는 암호화입니다

4.URL 암호화

string urlencode ( string $str )

이 기능을 사용하면 문자열을 인코딩하여 URL의 요청 부분에 사용할 수 있으며 다음 페이지로 변수를 전달할 수도 있습니다.

-_를 제외한 모든 영숫자가 아닌 문자가 퍼센트 기호(%)와 그 뒤에 오는 두 개의 16진수 숫자로 바뀌고 공백이 더하기 기호(+ )로 인코딩되는 문자열을 반환합니다. 이 인코딩은 WWW 형식 POST 데이터의 인코딩과 동일하며 application/x-www-form-urlencoded 미디어 유형과 동일한 인코딩입니다. 역사적인 이유로 이 인코딩은 공간을 더하기 기호(+)로 인코딩하는 RFC1738 인코딩과 다릅니다.

string urldecode ( string $str )

주어진 인코딩된 문자열의 %##을 디코딩합니다. 더하기 기호('+')는 공백 문자로 디코딩됩니다.

가역적 암호화로 암호화에는 urlencode 방식, 복호화에는 urldecode 방식이 사용됩니다

5. Base64 정보 인코딩 암호화

string base64_encode ( string $data )

base64를 사용하여 데이터를 인코딩합니다.

이 인코딩은 이메일 본문과 같은 순수하지 않은 8비트 전송 계층을 통해 바이너리 데이터를 전송할 수 있도록 설계되었습니다.

Base64로 인코딩된 데이터는 원본 데이터보다 약 33% 더 많은 공간을 차지합니다.

string base64_decode ( string $data [, bool $strict = false ] )

base64로 인코딩된 데이터를 디코딩합니다.

Parameters

  • data -- 인코딩된 데이터입니다.

  • strict - 입력 데이터가 base64 알파벳을 초과하면 FALSE를 반환합니다.

6.phpass(권장)

사용자 비밀번호를 데이터베이스에 저장하기 전에 해시하는 표준 방법인 phpass 0.3으로 테스트되었습니다. md5 및 sha1과 같이 일반적으로 사용되는 많은 해싱 알고리즘은 해커가 해당 알고리즘을 사용하여 쉽게 비밀번호를 해독할 수 있기 때문에 비밀번호 저장에 안전하지 않습니다.

비밀번호를 해시하는 가장 안전한 방법은 bcrypt 알고리즘을 사용하는 것입니다. 오픈 소스 phpass 라이브러리는 이 기능을 사용하기 쉬운 클래스로 제공합니다

7. 개인적으로 이것이 더 나은 비밀번호 암호화 방법이라고 생각합니다

PHP5.5에는 커널과 함께 제공되지만 그렇지 않은 비밀번호 해싱 기능이 도입되었습니다. 확장 프로그램을 설치해야 합니다. PHP5.4에서 테스트가 가능합니다. 사용하기 전에 현재 환경이 이러한 기능을 지원하는지 확인하는 것이 가장 좋습니다.

비밀번호 해싱은 주로 4가지 기능을 제공합니다

//1.查看哈希值的相关信息
array password_get_info (string $hash)
 
//2.创建hash密码
string password_hash(string $password , integer $algo [, array $options ])

//3.判断hash密码是否特定选项、算法所创建
boolean password_needs_rehash (string $hash , integer $algo [, array $options ] 

//4.验证密码
boolean password_verify (string $password , string $hash)

다음 예:

$password = 'password123456';//原始密码
$hash_password = password_hash($password, PASSWORD_BCRYPT);//使用BCRYPT算法加密密码
if (password_verify($password , $hash_password)){
   echo "密码匹配";
}else{  
   echo "密码错误";
}

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP에서 일반적으로 사용되는 암호화 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.