라이브러리
[PHP] openssl_encrypt - 데이터 암호화
PHP에서 OpenSSL 암호화
PHP 5.3.7 버전부터 OpenSSL 모듈이 기본적으로 포함되어 있으며, 암호화 및 복호화에 사용할 수 있습니다. OpenSSL은 SSL/TLS 프로토콜을 구현하는 오픈 소스 라이브러리입니다.
OpenSSL 암호화 함수
PHP에서 OpenSSL 암호화 함수는 다음과 같습니다.
* `openssl_encrypt()`: 암호화 함수
* `openssl_decrypt()`: 복호화 함수
* `openssl_cipher_iv_length()`: 암호화에 사용되는 키 길이를 반환하는 함수
* `openssl_random_pseudo_bytes()`: 암호화에 사용되는 난수 생성 함수
암호화 알고리즘
PHP에서 OpenSSL 암호화 함수는 다양한 암호화 알고리즘을 지원합니다.
* `AES-128-CBC`: 128비트 AES 암호화 알고리즘
* `AES-256-CBC`: 256비트 AES 암호화 알고리즘
* `AES-128-ECB`: 128비트 AES 암호화 알고리즘 (ECB 모드)
* `AES-256-ECB`: 256비트 AES 암호화 알고리즘 (ECB 모드)
암호화 예제
#hostingforum.kr
php
<?php
// 암호화 함수
function encrypt($data, $key, $cipher) {
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($cipher));
$encrypted = openssl_encrypt($data, $cipher, $key, OPENSSL_RAW_DATA, $iv);
return base64_encode($iv . $encrypted);
}
// 복호화 함수
function decrypt($data, $key, $cipher) {
$data = base64_decode($data);
$iv = substr($data, 0, openssl_cipher_iv_length($cipher));
$encrypted = substr($data, openssl_cipher_iv_length($cipher));
return openssl_decrypt($encrypted, $cipher, $key, OPENSSL_RAW_DATA, $iv);
}
// 암호화 키
$key = 'my_secret_key';
// 암호화할 데이터
$data = 'Hello, World!';
// 암호화 알고리즘
$cipher = 'AES-128-CBC';
// 암호화
$encrypted = encrypt($data, $key, $cipher);
echo '암호화된 데이터: ' . $encrypted . "
";
// 복호화
$decrypted = decrypt($encrypted, $key, $cipher);
echo '복호화된 데이터: ' . $decrypted . "
";
?>
이 예제에서는 AES-128-CBC 암호화 알고리즘을 사용하여 데이터를 암호화하고 복호화하는 방법을 보여줍니다. 암호화 키는 `my_secret_key`로 설정되어 있으며, 암호화할 데이터는 `Hello, World!`입니다.
암호화 및 복호화 시 주의사항
* 암호화 키는 안전하게 보관해야 합니다. 키가 노출되면 데이터가 위험하게 노출됩니다.
* 암호화 알고리즘은 안전하게 선택해야 합니다. AES-128-CBC는 일반적으로 안전한 알고리즘입니다.
* 암호화된 데이터는 안전하게 저장해야 합니다. 데이터가 노출되면 위험하게 노출됩니다.
이 글은 PHP에서 OpenSSL 암호화 함수를 사용하여 데이터를 암호화하고 복호화하는 방법을 설명합니다. 암호화 키와 알고리즘을 안전하게 선택하고, 암호화된 데이터를 안전하게 저장하는 것이 중요합니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.