0

我在 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);
4

1 回答 1

1

不,它不会更改全局设置。它只会影响直接附加到您定义它的位置的代码。

如果您希望更改是全局的,您将不得不破解核心、创建库覆盖/扩展核心。

于 2013-04-08T21:02:44.703 回答