개요
인터넷 개발을 통해 데이터베이스는 전 세계 데이터를 저장하고 관리하는 데 중요한 도구가되었습니다. 민감한 데이터가 증가함에 따라 데이터베이스의 보안이 특히 중요 해집니다. PHP 개발에서 사용자 비밀번호, 신용 카드 번호 및 기타 데이터와 같은 민감한 정보를 보호하는 것은 개발자가 무시할 수없는 작업이되었습니다. 이 정보의 보안을 보장하기 위해 암호화 및 암호 해독을 사용하여 데이터를 보호 할 수 있습니다. 이 기사는 PHP에서 암호화 및 암호 해독 기술을 사용하여 데이터베이스에서 민감한 데이터를 보호하고 해당 코드 예제를 제공하는 방법을 살펴 봅니다.
데이터 암호화
PHP는 AES (Advanced Encryption Standard) 및 RSA (Rivest-Shamir Adleman)를 포함한 다양한 암호화 알고리즘을 제공합니다. 데이터베이스 연결의 민감한 데이터의 경우 AES 알고리즘을 사용하여 암호화 할 수 있습니다. 다음은 AES 알고리즘을 사용하여 데이터를 암호화하는 방법을 보여주는 간단한 PHP 코드 예입니다.
<?php
// 암호화 기능
function encrypt($data, $key) {
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
$encrypted = openssl_encrypt($data, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
return base64_encode($encrypted . '::' . $iv);
}
?>
데이터베이스 연결 및 데이터 저장
데이터베이스 연결에서 먼저 데이터베이스 연결 정보를 정의하고 암호화 된 데이터를 안전하게 저장할 수 있는지 확인해야합니다. 다음은 데이터베이스에 암호화 된 데이터를 저장하기위한 코드입니다.
<?php
// 데이터베이스 연결
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$key = "your_encryption_key";
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
$conn-> setAttribute (pdo :: att_errmode, pdo :: errmode_exception);
// 암호화 될 데이터 $ $ data = "inventitive_info";
// 암호화 된 데이터 $ alcryptedData = alcrypt ($ data, $ key);
// 암호화 된 데이터를 데이터베이스에 저장 $ sql = "테이블에 삽입 (encrypted_data) 값 ( '$ alcryptedData')";
$ conn-> exec ($ sql);
Echo "데이터를 암호화하고 성공적으로 저장했습니다.";
} catch (pdoexception $ e) {
에코 "오류 :". $ e-> getMessage ();
}
$ conn = null;
?>
데이터 암호 해독
데이터베이스에서 암호화 된 데이터를 검색 해야하는 경우 해독에 해당 암호 해독 알고리즘을 사용해야합니다. PHP의 AES 알고리즘을 사용하여 데이터를 해독하는 방법은 다음과 같습니다.
<?php
// 암호 해독 기능
function decrypt($data, $key) {
list($encryptedData, $iv) = explode('::', base64_decode($data), 2);
return openssl_decrypt($encryptedData, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
}
?>
데이터베이스 연결 및 데이터 검색
데이터베이스에서 암호화 된 데이터를 검색 한 후 암호 해독 기능을 사용하여 원래 데이터로 변환해야합니다. 다음은 데이터베이스에서 데이터를 검색하고 해독하는 PHP 코드입니다.
<?php
// 데이터베이스 연결
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$key = "your_encryption_key";
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
$conn-> setAttribute (pdo :: att_errmode, pdo :: errmode_exception);
// 데이터베이스에서 암호화 된 데이터를 검색하십시오 $ SQL = "테이블에서 Encrypted_Data를 선택하십시오";
$ stmt = $ conn-> query ($ sql);
$ result = $ stmt-> fetch ();
// 해독 데이터 $ decryptedData = decrypt ($ result [ 'encrypted_data'], $ key);
에코 "해독 된 데이터 :". $ decrypteddata;
} catch (pdoexception $ e) {
에코 "오류 :". $ e-> getMessage ();
}
$ conn = null;
?>
요약
데이터베이스 연결에서 민감한 데이터를 보호하기 위해 PHP에서 암호화 및 암호 해독 기술을 사용하여 데이터 보안을 효과적으로 개선 할 수 있습니다. AES 암호화 알고리즘은 민감한 정보가 유출되지 않도록하는 일반적이고 강력한 암호화 방법입니다. 그러나 암호화 키를 보호하는 것이 똑같이 중요하며 개발자는 키의 보안을 보장하기 위해 적절한 조치를 취해야한다는 점은 주목할 가치가 있습니다.