【问题标题】:Encrypt Decrypt data by creating random keys and values加密通过创建随机键和值来解密数据
【发布时间】:2020-05-04 17:41:41
【问题描述】:

在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 文件中,无法在控制器内部设置加密密钥,我完全糊涂了。还有什么方法可以生成随机密钥并为每个登录的会话使用相同的密钥?

【问题讨论】:

标签: codeigniter encryption codeigniter-3


【解决方案1】:

如果您使用 CI 3,请转到文件夹 /application/config,编辑 config.php,然后输入加密密钥(32 个字符)

搜索以下行: $config['encryption_key'] = 'yourkeyhere';

【讨论】:

  • 我已经提到,每当用户登录时,我都需要一个唯一的密钥。因此,在 php 文件的任何位置设置静态密钥没有任何意义。我也写过关于 config.php 的内容。
  • 我正在解决错误:“为了使用加密类,您需要在配置文件中设置加密密钥。”配置文件中的这个键将对您的数据进行编码和解码。一旦您的用户通过身份验证,就会有数百个随机会话代码生成器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-08
  • 1970-01-01
  • 2014-11-30
  • 2017-03-17
  • 1970-01-01
  • 2020-03-20
  • 2014-09-01
相关资源
最近更新 更多