PHP
[PHP] 암호화 함수 openssl_encrypt 를 사용하여 암복호화 사용하기!
dev-mint
2022. 3. 3. 14:23
PHP 5.3 이상에서 사용할 수 있는 openssl_encrypt() 함수로
공통으로 사용할 수 있는 암호화, 복호화 함수를 만들어 보겠습니다.
https://www.php.net/manual/en/function.openssl-encrypt.php
암호화 openssl_encrypt()
<?php
// 암호화
function encrypt($plaintext, $key='') {
if (!$key) $key = "test-key";
return base64_encode(openssl_encrypt($plaintext, "AES-256-CBC", $key, true, str_repeat(chr(0), 16)));
}
AES는 대칭키를 쓰는 암호화 방식으로
암복호화시 양쪽에서 동일한 대칭키를 가지고 있어야합니다.
저는 키 값을 지정하지 않으면 test-key로 설정하였습니다.
복호화 openssl_decrypt()
원시 또는 base64 인코딩 문자열을 가져와 복호화 하는 함수입니다.
<?php
// 복호화
function decrypt($ciphertext, $key='') {
if (!$key) $key = "test-key";
return openssl_decrypt(base64_decode($ciphertext), "AES-256-CBC", $key, true, str_repeat(chr(0), 16));
}
사용예시
<?php
$plaintext = "민트의 개발일지";
// 암호화
$enc = encrypt($plaintext);
echo $enc; // toPA9+syodaqqqpLKXflNwuJUuoEqCobB9GxTVfRgU0=
// 복호화
$dec = decrypt($enc);
echo $dec; // 민트의 개발일지