codeigniter - 加密通过创建随机键和值来解密数据
问题描述
在代码点火器中,
每当用户通过身份验证时,我都想创建一个随机会话。该机制将用于加密/解密视图控制器之间的数据。例如,我希望打开如下表单:
<?php echo form_open('targetcontrollerfunction/'.encryptionfunction(data_to_be_secured)); ?>
因此,如果有人去检查元素,他们将无法理解传递给控制器的数据。
我试过的:
我也浏览了 Codeigniter 文档以及有关 stackoverflow 和 google 的几篇文章。他们建议使用encryption
库来生成随机密钥,并使用库来encrypt
使用该密钥对数据进行编码/解码。但挑战是他们希望我将新生成的密钥存储在$config["encryption_key"]
问题从这里开始。在我的控制器函数中,我正在验证用户帐户并设置一些会话变量。同时,我希望生成随机密钥,以便每个用户的密钥 100% 唯一,但是当我在控制器函数中使用以下代码时:
$randomkey=bin2hex($this->encryption->create_key(16));
$config["encryption_key"]=$randomkey;
$this->session->set_userdata('somekey', $this->encrypt->encode("somevalue"));
我也将其更改为:
$randomkey=bin2hex($this->encryption->create_key(16));
$config=array(
'encryption_key'=>$randomkey
);
$this->encryption->initialize($config);
$this->session->set_userdata('somekey', $this->encrypt->encode("somevalue"));
我收到一个错误:
为了使用加密类,您需要在配置文件中设置加密密钥。
无法将库加载到 config.php 文件中,无法在控制器内部设置加密密钥,我完全糊涂了。还有什么方法可以生成随机密钥并为每个登录的会话使用相同的密钥?
解决方案
如果您使用 CI 3,请转到文件夹 /application/config,编辑 config.php,然后输入加密密钥(32 个字符)
搜索以下行: $config['encryption_key'] = 'yourkeyhere';
推荐阅读
- excel - 使用 Word VBA 在表格单元格中查找粗体文本并提取其后面的文本
- php - 正确使用 Psalm 中一组类的模板注解
- r - 尝试在使用多个条件而不创建基线子样本的情况下找到平均值但不断收到此错误
- unit-testing - 如何评估更改对单行代码或变量的影响?
- javascript - JS在windows.open HTML页面中查找文本
- ruby - Ruby 小重构
- azure - 如何使用 azure 功能开始停止 azure app 服务计划
- sql - SQL Max() 对应的无空值
- biztalk - 脚本/自动化 BizTalk MSI 的创建,包括对挑选/选择项目的支持?
- ios - 记录区共享是如何完成的?