在我的自定义配置中,我有一行代码:
$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==
这是正常的吗?如果将来搬到不同的服务器,我会遇到任何问题吗?
答案 0 :(得分:1)
好吧,我将从我个人的经验告诉你,使用CodeIgniter进行编码时很常见(我为了不同的目的使用了数千次),尽管我不确切知道为什么。我已经用大量的琴弦进行了大量的测试,你可以安全地依赖它。
只要您保留相同的密钥和相同的字符编码,它就可以在不同的服务器中完美运行。我将来转移到另一台服务器,解密工作正常。