SSL (Secure Sockets Layer)은 인터넷 통신을 보호하고 클라이언트와 서버 간의 데이터 전송 암호화를 보장하는 프로토콜입니다. PHP에서는 OpenSSL Extension에서 제공하는 기능을 사용하여 SSL의 암호화 및 암호 해독 기능을 구현할 수 있습니다.
PHP에서는 OpenSSL_encrypt 함수를 사용할 수 있습니다. 간단한 암호화 예는 다음과 같습니다.
$data = 'Hello, World!';
$key = 'mysecretkey';
$encryptedData = openssl_encrypt($data, 'AES-256-CBC', $key, 0, 'myiv');
echo $encryptedData;
위의 코드는 AES-256-CBC 알고리즘을 사용하여 $ 데이터를 암호화합니다. $ 키는 암호화 키이고 $ IV는 초기 벡터이며 최종 암호화 결과는 $ alcryptedData 변수에 저장됩니다.
ciphertext를 해독하려면 OpenSSL_Decrypt 함수를 사용할 수 있습니다. 암호 해독의 예는 다음과 같습니다.
$encryptedData = '...'; // 암호화 된 데이터
$key = 'mysecretkey';
$decryptedData = openssl_decrypt($encryptedData, 'AES-256-CBC', $key, 0, 'myiv');
echo $decryptedData;
이 코드는 AES-256-CBC 알고리즘을 사용하여 $ EncryptedData를 해독하며 해독 된 데이터는 $ DecryptedData 변수에 저장됩니다.
SSL은 암호화 및 암호 해독 외에도 데이터 검증 및 서명 기능을 제공하여 데이터의 무결성과 소스의 진위를 보장합니다.
디지털 서명을 확인하려면 OpenSSL_verify 기능을 사용할 수 있습니다. 다음은 확인의 예입니다.
$data = 'Hello, World!';
$signature = '...'; // 디지털 서명
$publicKey = openssl_get_publickey(file_get_contents('public.pem'));
$isValid = openssl_verify($data, $signature, $publicKey, OPENSSL_ALGO_SHA256);
if ($isValid) {
echo 'Data is verified.';
} else {
echo 'Data is not verified.';
}
이 코드는 공개 키를 통해 $ 데이터의 서명을 확인합니다. 확인이 성공하면 $ isvalid 변수가 참이됩니다. 그렇지 않으면 False가됩니다.
데이터에 서명하려면 OpenSSL_Sign 함수를 사용할 수 있습니다. 다음은 서명의 예입니다.
$data = 'Hello, World!';
$privateKey = openssl_get_privatekey(file_get_contents('private.pem'));
openssl_sign($data, $signature, $privateKey, OPENSSL_ALGO_SHA256);
echo $signature;
이 코드는 개인 키와 함께 $ 데이터에 서명하고 서명 결과를 $ Signature 변수에 저장합니다.
이 기사에서는 OpenSSL 확장을 사용하여 PHP에서 SSL 암호화, 암호 해독, 검증 및 시그니처 기능을 구현하는 방법을 소개합니다. 이러한 작업을 통해 데이터의 보안 및 무결성을 더 잘 보장 할 수 있습니다. 이 기사가 도움이되기를 바랍니다.