CodeIgniter中的加密密钥
如果您想使用Session类,CodeIgniter 2.0.2需要在配置文件中设置一个加密密钥,即$config['encryption_key']
。是否可以任意字符串?任何安全encryption_key的例子?CodeIgniter中的加密密钥
谢谢。
是
$config['encryption_key'] = 'howAreYou'
让你知道加密函数生成编码消息会比原始邮件长大约2.6倍是很重要的。例如,如果加密字符串“我的超级秘密数据”(长度为21个字符),则最终将得到一个大约55个字符的编码字符串(我们说“粗略”,因为编码的字符串长度以64为增量位集群,所以它不完全是线性的)。选择数据存储机制时请记住这些信息。例如,Cookie只能保存4K条信息。
刚去的application/config
打开config.php文件
找出字
$config['encryption_key'] = '';
与
$config['encryption_key'] = 'your_encryption_key_here';
替换此加密密钥可以是任何字符串的类型,但要使它强大(像一个好的密码应该是),建议选择一个包含随机字母数字字符的字符。也可以在大写和小写字母之间切换。
为了简化这个过程,我创建了一个方便的在线解决方案,它为您生成一个随机的32个字符的字母数字加密密钥。它可以用于任何CodeIgniter,Laravel或您需要的项目。
请提供更多信息。提供到外部信息源的链接不是Stackoverflow的要点。 – user2314737 2014-02-19 12:56:16
将密钥保存到的application/config/config.php文件,打开文件,并设置:
上线227 $config['encryption_key'] = "YOUR KEY";
$ myconfig =&get_config(); $ key = $ myconfig ['encryption_key']; //并得到它 – Robot70 2016-12-08 20:10:33
我使用下面的代码我的应用程序的安装程序。它需要128个字节的随机数据(转换为一个十六进制字符串),并一次接受两个字符,转换为十进制数,并检查它们是否在可接受的范围内(字母数字,带符号,无空格或字符不会玩你的编辑器或配置文件很好 - 别名')
32个字符是128位,所以它适用于块密码。
function random_key_string() {
$source = bin2hex(openssl_random_pseudo_bytes(128));
$string = '';
$c = 0;
while(strlen($string) < 32) {
$dec = gmp_strval(gmp_init(substr($source, $c*2, 2), 16),10);
if($dec > 33 && $dec < 127 && $dec !== 39)
$string.=chr($dec);
$c++;
}
return $string;
}
嗨@Karimkorun - 我期待通过安装程序自己设置此密钥,并遇到您的答案。你如何去写配置文件的值?代码点火器是否提供了一个方便的方法? – 2014-07-21 18:27:51
我写了一个安装程序来执行此操作,因为它是一个开源应用程序。您可以在创建新应用程序时编写CLI脚本来生成配置文件。 – karimkorun 2014-08-08 02:10:25
Codeigniter 3.1。0 您不得使用“encryption_key”常规文本
“最关键的应该是尽可能随机的,它必须不是一个普通的文本字符串,也不是一个散列函数的输出等。为了创造一个正确的密钥,则必须使用加密库的create_key()方法”
$this->load->library('encryption');
$key = $this->encryption->create_key(16);
// Get a hex-encoded representation of the key:
$key = bin2hex($this->encryption->create_key(16));
// Put the same value in your config with hex2bin(),
// so that it is still passed as binary to the library:
$config['encryption_key'] = hex2bin(<your hex-encoded key>);
来源:https://codeigniter.com/userguide3/libraries/encryption.html#setting-your-encryption-key
我知道配置设置进入config.php,但你把$ key的设置放在哪里? – bjacobs 2017-08-18 20:32:30
+1有关饼干大小的信息,我直到我读到这个并且使用了一些随机的复杂密钥 – Nishanthan 2014-07-15 13:01:09