2013-12-20 65 views
2

我利用RSA的crypting一些数据,我希望将数据传递到我的服务器在这样一个GET链接:如何使用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添加特殊字符(净化链接我认为)和如果我打印'数据'的内容与

echo $_GET['data']; 

但php剪的内容。 有没有办法解决这个问题?

谢谢。

编辑:我试着编码url但RSA解密不起作用。奇怪的是,在我的本地服务器(LAMPP)中,它完美的工作,但不在远程服务器上。

+1

其发送到Web服务器 –

+0

哪些输出不前,请确保您的URLEncode数据'回声$ _GET [“数据”];'提供?你编码了吗? – BenM

+0

为什么不使用'POST'? – h2ooooooo

回答

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; 
    } 
+0

谢谢!有用 ;) – bit

0

对于通过URL传递斜线而不将其更改为新的动作或文件夹,您必须将所有“/”转换为我使用的“---”的某个特定模式,并在您的代码中将所有“---” /“,并在获取参数中获得您的价值。

,如:

var temp = replaceAll('/','---',your_link); 

function replaceAll(find, replace, str) { 
return str.replace(new RegExp(find, 'g'), replace); 
} 
3

二者必选其一urlencodebase64_encode,并据此进行解码。

+0

'base64_encode'+1 – neubert

相关问题