php get 加号,PHP – 带GET查询的加号

我有一个PHP脚本,通过以下方法对字符串进行基本加密:

$key = 'secretkey';

$string = $_GET['str'];

if ($_GET['method'] == "decrypt")

{

$output = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($string), MCRYPT_MODE_CBC, md5(md5($key))), "\0");

}

if ($_GET['method'] == "encrypt")

{

$output= base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));

}

echo $output;

?>

加密字符串的URL的示例如下所示:

Encrypt.php?method = encrypt& str =快速狐狸

这将返回为加密字符串:

LCuT / ieVa6cl3 / 4VtzE jd9QPT3kvHYYJFqG6tY3P0Q =

现在解密字符串所有你需要做的是将“方法”查询改为“decrypt”,就像这样:

Encrypt.php?method = decrypt& str = LCuT / ieVa6cl3 / 4VtzE jd9QPT3kvHYYJFqG6tY3P0Q =

唯一的问题是,当加密的字符串被解密时,它返回:

¬ƒ§rYV}̳5Äš·NSSI(ñïX8Þ,B

我将问题缩小到加密字符串中的加号。 PHP的GET方法似乎将加号转换为空格。我已经搜索这个错误,并发现它已经提交了here.我尝试了不同的方法列在该页面和其他没有成功。我最接近的是使用这个:

$fixedstring = str_replace(" ", "+", $string);

然后在加密方法中使用$ fixedstring,问题是,解密后,所有空格都将转换为加号。有任何想法吗?

我知道使用POST会更有意义,但是由于特定的原因我使用GET。我会省略细节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值