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

CakePHP: Encrypt password in config file

出于修订控制的原因,我不想在 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. 
}

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

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

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