1

在我的自定义配置中,我有这样一行:

$config['encryption_key_posts'] ='vfy9SbKO!drtzwHkOvD46hGFedzaw3$l';

在自定义库中,我有:

class MyEncryption {

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);
    }
}

我这样使用它:

encode($_POST['post_title'],config_item('encryption_key_posts'))

decode($this->data['post']->post_title,config_item('encryption_key_posts'))

我正在使用相同的 post_title = 'TEST' 对其进行测试,但我总是得到不同的结果,例如:

Gk16w123clh3RZdYbGZc8g==
L64cWTVSaxWf8xGVVCRbyQ==
Ox2H4xAizS9lsKEQHzxRgg==

这是正常的吗?如果我将来移动到不同的服务器,我会有什么问题吗?

4

1 回答 1

1

好吧,我会根据我的个人经验告诉你,使用 CodeIgniter 进行编码时很常见(我已经为不同的目的使用了数千次),尽管我不知道具体原因。我已经用大量的字符串对它进行了大规模测试,你可以放心地依赖它。

只要您保持相同的密钥和相同的字符编码,它就可以在不同的服务器上完美运行。如果您将来移至另一台服务器,则解密将正常工作。

于 2013-04-10T15:24:03.123 回答