我知道这是可能的,我在很多网站上都进行了研究,但没有找到任何可以完全满足我需要的东西。
我需要在URL中编码和存储两个参数,然后使用$ _GET方法检索它。
参数不是敏感数据。我的目的主要是混淆它,所以如果没有网站访问,访问者就无法阅读它。
我有这样的事情:
site.com/?name=john&food=banana%20split
我需要它成为这样的东西:
site.com/g57HT90dw8lC5p
我该怎么做?感谢。
(抱歉我的英语不好)
编辑:我应该多解释一下。
答案 0 :(得分:4)
这是错误的方法 - 你说它不敏感所以你最好修复你的代码,如果有人发送你制作的数据,它就不会被黑客入侵。混淆可以防止普通用户进行更改,但没有人会被这种方式所愚弄。此外,许多浏览器GET是有限的(因此可以配置PHP和服务器),因此这可能会比你想要的更快。但是如果你坚持要这种方法,可以将所有变量放入json_array,然后使用base64进行编码。
$myData = array('foo'=>1, 'bar'=>'hax0r');
$arg = base64_encode( json_encode($myData) );
http://site.com/secret=$arg
并返回:
$myData = json_decode( base64_decode( $_GET['secret'] ) );
但是再次 - 这在设计上是错误的。
答案 1 :(得分:2)
将两个字符串值附加在一起;然后使用一些编码函数,如str_rot13或其他
答案 2 :(得分:1)
你可以uuencode。
在创建
$converted = convert_uuencode('?name=john&food=banana');
// 6/VYA;64]:F]H;B9F;V]D/6)A;F%N80``
解码时
$query = $_SERVER['QUERY_STRING'];
// 6/VYA;64]:F]H;B9F;V]D/6)A;F%N80``
$real = convert_uudecode($query);
// ?name=john&food=banana
uuencoding的目的是使数据对网络传输安全。它不提供保护,但它会使它们成为明文之外的东西。
答案 3 :(得分:1)
尝试使用这些PHP函数convert_uuencode和convert_uudecode
比仅使用base64
更安全function encrypt_decrypt ($data, $encrypt) {
if ($encrypt == true) {
$output = base64_encode (convert_uuencode ($data));
} else {
$output = convert_uudecode (base64_decode ($data));
}
return $output;
}
$enc_txt = encrypt_decrypt ("name=john&food=banana%20split", true);
echo $enc_txt."\n";
// PTtGJU05M1VKO1ZBTilGOU87VjBdOEYlTjg2WUEpMyhQPFchTDo3MGAKYAo=
echo encrypt_decrypt ($enc_txt, false);
// name=john&food=banana%20split
答案 4 :(得分:0)
查看PHP文档Base64Encode。只需对字符串进行编码,并在读取查询时对其进行解码。