Codeigniter加密库解密函数总是返回empyt字符串?

时间:2017-06-28 03:38:47

标签: php codeigniter encryption

我正在尝试在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个字符的字符串。

2 个答案:

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