2013-04-10 80 views
1

在我的自定義配置,我有這樣一行:Codeigniter對相同字符串的不同結果進行編碼/解碼。正常?

$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 ='測試',我總是得到不同的結果,如:

Gk16w123clh3RZdYbGZc8g== 
L64cWTVSaxWf8xGVVCRbyQ== 
Ox2H4xAizS9lsKEQHzxRgg== 

這是正常的嗎?如果我將來轉移到另一臺服務器上,我會遇到任何問題嗎?

+0

爲什麼要在編碼是什麼?我認爲這是以防數據庫落入壞人之手的額外的安全層的目的是什麼?... – 2013-04-10 05:21:59

+0

。這些是私人帖子,不公開。當然,我要去編碼後身體也,不僅標題:) – e4rthdog 2013-04-10 05:23:27

+0

我不知道它是否正確。我正在使用base64_encode在URL中編碼我的字符串.........但它對我的使用是安全的。我不知道這種情況..... – 2013-04-10 05:29:16

回答

1

好吧,我會從我個人的經驗,它使用CodeIgniter編碼時很常見告訴你(我已經使用了數千次不同的目的),但我完全不知道爲什麼。我已經用大量的字符串大量地測試了它,並且可以安全地依靠它。

它,只要你保持相同的密鑰和相同的字符編碼可以完美運行在不同的服務器。我將來移動到另一臺服務器時,解密將正常工作。

+1

謝謝!所以,如果我把我的UTF-8設置和關鍵我應該沒事......我想,這個神奇的base64裏面是什麼地方發生的事情和IV密鑰也不同,因此不同的字符串。 – e4rthdog 2013-04-10 17:59:36

相關問題