【问题标题】:authToken encryption with urlencoding/urldecoding and .htaccess issueauthToken 加密与 urlencoding/urldecoding 和 .htaccess 问题
【发布时间】:2014-01-29 17:10:30
【问题描述】:

当您使用 url 编码/urldecoding 和 .htaccess 文件进行加密时如何生成令牌。

我也启用了 .htaccess,但它遇到了此 url 中提到的 javascript/php 通信问题。 http://www.tequilafish.com/2007/12/06/mod_rewrite-php-how-to-match-urlencoded-plus-sign/

根据帖子的建议,我不能进行两次urlencode,因为前端系统不在我的控制之下,

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.+)$ index.php?uri=$1 [QSA,L]

.

class Crypt {

public static function encrypt($data, $secret) {
   $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
   $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
   $key = pack('H*', $secret);
   return base64_encode($iv . mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv));
   }

public static function decrypt($data, $secret) {
   $data = base64_decode($data);
   $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
   $iv = substr($data, 0, $iv_size);
   $data = substr($data, $iv_size);
   $key = pack('H*', $secret);
   return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv), chr(0));
   }
  }

【问题讨论】:

  • 最好让 NSA 知道你想让他们的事情变得更容易,他们就可以为所有的裁员做好准备
  • 我不明白这个问题。您没有显示任何相关代码。您想将整个请求 URI(包括路径、脚本和参数)传递给查询参数吗?这就是问题所在?

标签: php .htaccess authentication encryption mcrypt


【解决方案1】:

如果您想在 url 中发送数据,那么您必须使用 urlencode 以及从哪里获取数据 urldecode。使用 urlencode 删除所有空格和空格字符并 urldecode 你得到真实数据

例子:

$abc = urlencode($abc);

然后在url中发送

重定向:authToken encryption with urlencoding/urldecoding and .htaccess issue$abc

我相信你明白了:)

【讨论】:

  • 这实际上不是真的。 PHP 解析和解码输入。如果您对 & 进行 urlencode 以使 url 变为 index.php?var=%26,则您不必必须使用 urldecode($_GET['var']) 来获取 &。 PHP 会为您做到这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-11
  • 2018-09-10
  • 1970-01-01
相关资源
最近更新 更多