Codeigniter编码/解码相同字符串的不同结果。正常?

时间:2013-04-10 05:15:17

标签: codeigniter encryption

在我的自定义配置中,我有一行代码:

$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==

这是正常的吗?如果将来搬到不同的服务器,我会遇到任何问题吗?

1 个答案:

答案 0 :(得分:1)

好吧,我将从我个人的经验告诉你,使用CodeIgniter进行编码时很常见(我为了不同的目的使用了数千次),尽管我不确切知道为什么。我已经用大量的琴弦进行了大量的测试,你可以安全地依赖它。

只要您保留相同的密钥和相同的字符编码,它就可以在不同的服务器中完美运行。我将来转移到另一台服务器,解密工作正常。