URL中的加密数据

时间:2010-12-03 16:55:04

标签: php codeigniter mcrypt

我正在开发一个PHP应用程序来管理公司的订单。要查看订单,网址目前为/orders/view/3502

我不希望订单ID号出现在URL中,因此我使用CodeIgniter的加密库来加密URL中的ID。 URL(加密后)看起来像/orders/view/AaffGdQQ

我遇到的问题有时加密ID包含正斜杠或加号,在URL中无法正常工作。 CodeIgniter基于斜杠读取URL,因此,如果加密的ID有斜杠,它将读取为2个变量,而不是一个。此外,加号会被解释为URL中的空格。

所以,我的问题是,如何加密ID并确保该字符串不包含加号或斜杠?

编辑:我想知道加密的ID是否包含斜杠或加号,如果是,则再次加密。出于某种原因,每次ID被加密时,它都会有所不同,所以这样可行。

3 个答案:

答案 0 :(得分:9)

您还可以使用base64_encode()。这也将使它更长,看起来“更安全”。还添加了一层混淆。

答案 1 :(得分:1)

也许通过urlencode()传递加密的数据会解决这个问题?执行此操作后,您必须在CodeIgniter执行之前拦截数据,并在其上运行urldecode()

只是一个简单的想法,祝你好运!

答案 2 :(得分:0)

查找加密不使用的某些字符,并在适合时替换它们。使用网址时,请将其撤消。