我利用RSA加密一些数据,我希望以这种方式将数据作为GET链接传递给我的服务器:
myserver.ext/index.php?data=Âhå/2#ÛI§cw¦»L¸ÙvóìßKßàë%`N5 Ï'üQn6ÕYì&7ï,Î}:i!öççk\¶Z:Ò/MTÚFÿ*ßÕ®ØÒ¿¢y:ïM&CçëöѤÛ5ÂÿQöÎÙ Ð=Páë*¹-fð
如果我在此链接上键入'enter',则borwser会添加特殊字符(以清除我认为的链接)以及如果我使用
打印'data'的内容echo $_GET['data'];
但是php削减了内容。 有没有办法解决这个问题?
感谢。
编辑:我尝试使用编码网址,但RSA解密不起作用。奇怪的是,在我的本地服务器(LAMPP)中它完美地工作,但不在远程服务器上。
答案 0 :(得分:3)
使用urlencode
或base64_encode
,然后进行相应的解码。
答案 1 :(得分:1)
您可以使用这些功能来加密/解密您的数据
function rsa_encrypt($yourPublickey, $message) { $rsa = new Crypt_RSA(); $rsa->loadKey($yourPublickey); $encrypted = urlencode(base64_encode($rsa->encrypt($message))); return $encrypted; } function rsa_decrypt($yourPrivatekey, $cryptedData) { $rsa = new Crypt_RSA(); $rsa->loadKey($yourPrivatekey); $decrypted = $rsa->decrypt((base64_decode($cryptedData))); return $decrypted; }
答案 2 :(得分:0)
要通过url传递斜杠而不将其更改为新的操作或文件夹,您必须将所有“/”转换为我使用的“---”特定模式,并在您的代码中将所有“---”转换为“/” “而且你在get参数中得到了你的价值。
像:
var temp = replaceAll('/','---',your_link);
function replaceAll(find, replace, str) {
return str.replace(new RegExp(find, 'g'), replace);
}