我正在尝试在Wiredesignz提供的HMVC中的Codeigniter 3.1.3中使用加密库。我甚至尝试使用我的自定义设置初始化加密库,如下所示,因为它没有使用默认设置:
$this->load->library('encryption');
$this->encryption->initialize(
array(
'cipher' => 'aes-256',
'driver' => 'openssl',
'mode' => 'ctr'
)
);
$this->load->module('site_security');
$str = "12345";
$encrypted_str = $this->encryption->encrypt($str);
echo "encrypted_str: ".$encrypted_str; //works fine gives me encrypted string.
$decrypted_str = $this->encryption->decrypt($encrypted_str);
echo "<br>decrypted_str: ".$decrypted_str; // always gives me empty string
我使用加密方法成功加密字符串,但我无法对其进行解密,它总是给我空字符串。我还将$ config [&#39; encryption_key&#39;]设置为config / config.php文件中的32个字符的字符串。
答案 0 :(得分:1)
Codeigniter默认使用var t2 = DateTime.ParseExact(tmp, "hh:mm:ss", CultureInfo.InvariantCulture).TimeOfDay;
,你可以在配置文件中找到它,用于加密过程!
所以要解密它,你必须先拥有这个密钥!然后你可以按如下方式解密它:
$config['encryption_key']
之后,您可以再次加密它!
答案 1 :(得分:0)
首先在配置文件中设置encryption_key。
$config['encryption_key'] = 'something';
控制器中的第二个加载库。
public function test()
{
$this->load->library('encryption');
$plain_text = 'This is a plain-text message!';
$ciphertext = $this->encryption->encrypt($plain_text);
// Outputs: This is a plain-text message!
echo $this->encryption->decrypt($ciphertext);
}