728x90
php 작업 중 db 에 암호화 해서 데이터를 넣어야 할 경우 다시 복호화 해서 사용자 화면에는 보여져야 하는 경우 AES 예제로 암호화 키 값을 넣어서 만들수 있는 예제 이다.
$encryptionKey 값에 임의의 값을 넣어서 사용하면 된다.
<?php
// 암호화 키 (16, 24 또는 32 바이트 여야 함)
$encryptionKey = 'your_secret_key';
// 암호화할 데이터
$dataToEncrypt = 'Hello, this is a secret message!';
// 암호화
$encryptedData = encryptData($dataToEncrypt, $encryptionKey);
echo 'Encrypted Data: ' . $encryptedData . "\n";
// 복호화
$decryptedData = decryptData($encryptedData, $encryptionKey);
echo 'Decrypted Data: ' . $decryptedData . "\n";
function encryptData($data, $key) {
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
$encrypted = openssl_encrypt($data, 'aes-256-cbc', $key, 0, $iv);
return base64_encode($iv . $encrypted);
}
function decryptData($data, $key) {
$data = base64_decode($data);
$ivLength = openssl_cipher_iv_length('aes-256-cbc');
$iv = substr($data, 0, $ivLength);
$encrypted = substr($data, $ivLength);
return openssl_decrypt($encrypted, 'aes-256-cbc', $key, 0, $iv);
}
?>
함수로 만들어 두면 변환해야 하는 데이터와 key 만 주면 되기에 조금 더 편하게 이용해 볼 수 있다.
728x90
'PHP' 카테고리의 다른 글
php 암호화 복호화 가능한 AES (0) | 2024.03.14 |
---|---|
php 에서 sass 파일 css 로 컴파일 하기 (0) | 2024.03.13 |
php form 태그 다중 checkbox 존재여부 체크 isset (implode, explode) (0) | 2024.01.25 |
php 서명 받고 이미지로 저장하기 canvas 이미지로 저장 (0) | 2023.11.09 |
php Date Time 현재시간 비교, 요일별 증가 하며 날짜 구하기 (0) | 2023.09.16 |