【发布时间】:2013-04-09 12:28:21
【问题描述】:
我在 CodeIgniter 中有以下类
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class ZoEncryption {
public $_CI;
public function __construct() {
$this->_CI = & get_instance();
$this->_CI->encrypt->set_cipher(MCRYPT_BLOWFISH);
$this->_CI->encrypt->set_mode(MCRYPT_MODE_CBC);
}
function encode($str, $key) {
return $this->_CI->encrypt->encode($str, $key);
}
function decode($str, $key) {
return $this->_CI->encrypt->decode($str, $key);
}
}
?>
我在我的 ci 应用程序中使用这个库来加密和解密数据库中的用户内容。我正在指定密码和模式,因为我希望在加密/解密中具有特定的逻辑,并且如果此更改的编码将来我不希望出现意外。
我也在使用password_compat 库来尽早实现 PHP 5.5 的新密码哈希模式。
这个库允许我基于 PHP 的未来构建我的用户密码哈希逻辑。
如果我没有在构造函数中设置密码和模式并将相关行放在我的基本控制器构造函数中,那么我的密码哈希不起作用。
特别是如果我在MY_Controller中放入以下两行,密码验证不起作用。
以下行是否会影响全局 CI?
$CI->encrypt->set_cipher(MCRYPT_BLOWFISH);
$CI->encrypt->set_mode(MCRYPT_MODE_CBC);
【问题讨论】:
标签: php codeigniter encryption