实现 PHP 配置数据库文件加密可以通过以下步骤进行:
$key = openssl_random_pseudo_bytes(32);
file_put_contents('config.key', $key);
$config = [
'host' => 'localhost',
'username' => openssl_encrypt('myusername', 'AES-256-CBC', $key),
'password' => openssl_encrypt('mypassword', 'AES-256-CBC', $key),
'database' => 'mydatabase',
];
file_put_contents('config.php', '<?php return ' . var_export($config, true) . ';');
$config = include 'config.php';
$dbUsername = openssl_decrypt($config['username'], 'AES-256-CBC', $key);
$dbPassword = openssl_decrypt($config['password'], 'AES-256-CBC', $key);
// 使用解密后的用户名和密码连接数据库
$db = new PDO('mysql:host=' . $config['host'] . ';dbname=' . $config['database'], $dbUsername, $dbPassword);
重要提示:确保密钥文件(config.key)和配置文件(config.php)存放在安全的位置,不要让它们可以被公开访问。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: PHP中递归与迭代方法的性能比较