Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 对用户隐藏url路径_Php - Fatal编程技术网

Php 对用户隐藏url路径

Php 对用户隐藏url路径,php,Php,为了安全起见,我不希望我的用户可以读取url来访问图片 事实上我有 https://files.domain.com/TERFD/TES/photos/20150729-0961577ba8bc6c31e7339acf0c53969a170609038345c3a0602d646a48067c10-ANnKb.jpeg?uid=3&token=360d641dc692041cbea673a 但我更希望用户可以读取图片的路径或令牌 因此,我编写了以下函数: public function

为了安全起见,我不希望我的用户可以读取url来访问图片

事实上我有

https://files.domain.com/TERFD/TES/photos/20150729-0961577ba8bc6c31e7339acf0c53969a170609038345c3a0602d646a48067c10-ANnKb.jpeg?uid=3&token=360d641dc692041cbea673a
但我更希望用户可以读取图片的路径或令牌

因此,我编写了以下函数:

public function encrypt($data) {

    $key = "df456gfd";
    $data = serialize($data);
    $td = mcrypt_module_open(MCRYPT_DES,"",MCRYPT_MODE_ECB,"");
    $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
    mcrypt_generic_init($td,$key,$iv);
    $data = base64_encode(mcrypt_generic($td, '!'.$data));
    mcrypt_generic_deinit($td);
    return $data;

}

public function decrypt($data) {

    $key = "df456gfd";
    $td = mcrypt_module_open(MCRYPT_DES,"",MCRYPT_MODE_ECB,"");
    $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
    mcrypt_generic_init($td,$key,$iv);
    $data = mdecrypt_generic($td, base64_decode($data));
    mcrypt_generic_deinit($td);

    if (substr($data,0,1) != '!')
        return false;

    $data = substr($data,1,strlen($data)-1);
    return unserialize($data);

}
我的URL现在是:

https://files.domain.com/NcGDHiMnmM3fYW2W03ulyJdlCp6FaXCYDlxzWe74zH63+YpfUSPuKnxWIG1C1WNNjw/jU7coduYchvf44Lh4yiVdcL7uyx4vA4oOj14keiohQ9geIYVxsa4n07E0TXbstSETbhqGejE03Ai5hGcJEa7U/aA7z1fRkQEAxepH9j6yu+tQZESp3dXg7JUvVffI9lbpPtbGLj8=
我可以从files.domain.com解密它并返回请求的文件

这是一种好的做法吗


Thx

实际上,通过这种做法,您只是在降低应用程序的速度。老实说,你把事情弄得太复杂了。为什么不使用类似于
base64\u encode()
base64\u decode()
的东西呢。这些函数实际上比解密和加密函数快。

这种做法实际上是在降低应用程序的速度。老实说,你把事情弄得太复杂了。为什么不使用类似于
base64\u encode()
base64\u decode()
的东西呢。这些函数实际上比解密和加密函数快。

您可以添加md5函数使其更短。但老实说,你把它弄得太复杂了。你为什么不想让你的用户看到呢?加密和解密将减慢您的应用程序的速度。@Randomius With md5我无法解密字符串(文件服务器端)@Daan营销目的。。。一些url可以有客户的informations@Fred-ii-令牌每天都会更改。您可以添加md5函数使其变短。但老实说,你把它弄得太复杂了。你为什么不想让你的用户看到呢?加密和解密将减慢您的应用程序的速度。@Randomius With md5我无法解密字符串(文件服务器端)@Daan营销目的。。。一些url可以有客户的informations@Fred-ii-代币将每天更改