【问题标题】:View a File Encrypted by the Encrypt Class of Codeigniter查看由 Codeigniter 的 Encrypt 类加密的文件
【发布时间】:2015-03-10 00:47:00
【问题描述】:

我使用了codeigniter的加密类来加密我服务器中上传的文件。然后,只要我不想像这样访问它,我就会解密它:

$decrypted = $this->encrypt->decode($fileContents);

我现在的问题是我不知道如何处理我的变量 $decrypted,我想查看我的文件,但据我目前使用谷歌搜索,查看文件的函数需要一个参数,它是一个 url ,但是我不想为了查看而将解密的文件保存在服务器中。我需要帮助。

【问题讨论】:

  • 使用正确的Content-type: */* 标头将其输出到浏览器。如果此人有插件可以在浏览器中查看它,则会显示该文件。否则,此人可以下载它。
  • 你能告诉我如何将它吐到浏览器吗? @Ismael Miguel?
  • 我从未使用过代码点火器,但是,如果变量 $decripted 包含文件内容,则使用 echo 将起作用。
  • 我尝试回显我的 $decrypted 变量。它给了我一个字符串,一个我无法理解的很长的字符串。像这样 'sdfsdFSD#$@424324SDASDa#$@@4@$234SDFsdf.........'
  • 哪里有加密代码?

标签: php codeigniter


【解决方案1】:

您的问题是 codeIgniter 加密类还是文件查看问题?我的意思是,你在解码文件吗?

如果您在配置文件中提供了加密密钥,请检查这些。即,

    $config['encryption_key'] = 'some_key';

1.你加载codeIgniter类了吗?

    $this->load->library('encrypt');

2.如果你要编码的文件是一个视图页面,你得到文件的内容了吗?

    $fileContents = $this->load->view('file_name','',TRUE);

3.编码文件

    $encrypted_string = $this->encrypt->encode($fileContents);

4.解码文件

    $plaintext_string = $this->encrypt->decode($encrypted_string);

第三步之后你会得到一个长长的乱码,就是加密后的字符串。 在第四步之后,您将取回文件内容。

您可以在每个步骤中回显结果以进行验证。

希望这能让您对 codeIgniter 加密类有所了解。

【讨论】:

  • 我已经完成了从 1 到 4 的这些步骤,我唯一的问题是我不知道如何使用解码加密文件后的纯文本字符串查看我的文件...
  • 回显 $plaintext_string 时得到什么?
  • 一个很长的字符串,我无法理解。像这样 'sdfsdFSD#$@424324SDASDa#$@@4@$234SDFsdfdsfsdfsweqw21314we231aedwerqw214234e@!#$$%@$!#dSSvdwae@#$!@#$F'
  • 回显 $fileContents 时是否相同?如果您希望我们帮助您,您必须提供更多代码。
  • 不一样。 :(
【解决方案2】:

@Ismael Miguel 是对的。我只需要使用正确的 Content-type: / 标头将其吐出到浏览器中。像这样:

header("Content-type:application/pdf");
echo $decrypted;

我知道如果该人有插件可以在浏览器中查看该文件,则该文件只会出现。我认为有更好的方法来做到这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多