CakePHP:在配置文件中加密密码

时间:2015-02-20 09:35:34

标签: cakephp configuration password-encryption

出于版本控制的原因,我不想在database.php中以纯文本格式存储我的数据库配置密码。

我想要这样的事情:

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'root',
    'password' => simpleEncryptFunction('v3RyH4rD3NcRyPtEdPaS$wOrD'),
    'database' => 'sample',
    'prefix' => '',
    //'encoding' => 'utf8',
);

private function simpleEncryptFunction($hardPassword == null) {
   // Some pretty easy decrypt code. Not safe at all but I don't care.
   // It just shouldn't be that easy for people who don't understand code. 
}

1 个答案:

答案 0 :(得分:0)

ndm的评论是对的,您的方法 有缺陷。而是这样做:

  • 创建database.default.php并将默认值设置为,不含密码并提交。
  • database.php放入.gitignore,此文件永远不会将被提交。
  • 将您的部署脚本更改为自动将database.default.php复制到default.php,并将密码值替换为所需的密码
  • 对于开发,您的开发人员必须手动(或通过脚本)

同样的概念也适用于bootstrap.phpcheck this plugin out,我们将其用于项目,以便有条件地配置和加载多个环境。