>  기사  >  백엔드 개발  >  PHP에서 AES 암호화를 구현하는 방법

PHP에서 AES 암호화를 구현하는 방법

WBOY
WBOY원래의
2022-03-15 10:24:4333868검색

PHP에서는 "openssl_encrypt()" 함수를 사용하여 aes 암호화를 구현할 수 있습니다. 매개변수의 암호화 방법을 "AES-128-ECB"로 설정하기만 하면 됩니다. 구문은 "openssl_decrypt(encrypted plaintext,')입니다. AES-128-ECB', 암호화 키, 데이터 형식)".

PHP에서 AES 암호화를 구현하는 방법

이 문서의 운영 환경: Windows 10 시스템, PHP 버전 7.1, Dell G3 컴퓨터.

php에서 aes 암호화를 구현하는 방법

php에서는 openssl_encrypt를 사용하여 암호화를 구현하고 openssl_decrypt를 사용하여 해독을 구현합니다.

1: openssl_encrypt 메서드에 대한 자세한 설명:

openssl_encrypt($data, $method, $key, $options = 0, $iv = "", &$tag = NULL, $aad = "", $tag_length = 16)

매개변수:

1.$data: 암호화된 일반 text

2 .$method: 암호화 방법: openssl_get_cipher_methods()

3.$passwd: 암호화 키 [password]

4.$options: 데이터 형식 옵션(선택 사항) [옵션은 다음과 같습니다. ]: 0,OPENSSL_RAW_DATA=1,OPENSSL_ZERO_PADDING=2,OPENSSL_NO_PADDING=3

5.$iv: 조밀한 초기화 벡터(선택 사항), 참고: 메서드가 DES−ECB인 경우 iv를 채울 필요가 없습니다

6.$tag: 참조된 인증 태그를 전달할 때 AEAD 비밀번호 모드(GCM 또는 CCM)를 사용합니다(선택 사항)

7.$aad: 추가 인증 데이터. (선택)

8.$tag_length: 태그 길이를 확인합니다. GCM 모드에서 범위는 4~16(선택 사항)

2: openssl_decrypt 메서드에 대한 자세한 설명

openssl_decrypt($data, $method, $password, $options = 1, $iv = "", $tag = "",  $aad = "")

매개변수:

1.$data: 해독할 암호화된 메시지입니다.

2.$method: 복호화 방법: openssl_get_cipher_methods()를 통해 얻을 수 있는 복호화 방법

3.$passwd: 복호화 키 [비밀번호]

4.$options: 데이터 형식 옵션(선택 사항) [옵션은 다음과 같습니다.] 0,OPENSSL_RAW_DATA=1,OPENSSL_ZERO_PADDING=2,OPENSSL_NO_PADDING=3

5.$iv: 조밀한 초기화 벡터(선택 사항), 참고: 메서드가 DES−ECB인 경우 iv를 채울 필요가 없습니다

6. $tag : AEAD 비밀번호 모드의 인증 태그(선택 사항)

7.$aad: 추가 인증 데이터. (선택)

3: AES 암호화 및 복호화 구현

1: AES 암호화

// 要加密的字符串
$data = 'test';
// 密钥
$key = '123456';
// 加密数据 'AES-128-ECB' 可以通过openssl_get_cipher_methods()获取
$encrypt = openssl_encrypt($data, 'AES-128-ECB', $key, 0);
echo (($encrypt));

2: AES 복호화

//解密字符串
$encrypt = '***';
//密钥
$key = '123456';
// 解密数据
$decrypt = openssl_decrypt($encrypt, 'AES-128-ECB', $key, 0);
echo $decrypt;

위에 따르면 AES 암호화 및 복호화 기능을 구현할 수 있습니다

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

위 내용은 PHP에서 AES 암호화를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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