使用base64编码的字符串URL

rac*_*ace 5 php url base64 zend-framework

可能重复:
在URL中传递base64编码的字符串

我正在创建一个将发送给用户的网址.用户然后单击该URL,此URL告诉我该用户是谁.

所以我使用base64编码添加到此链接的所有数据.然而,当用户点击链接时,他被重定向到404页面,因为编码的网址中有"/",而zend框架路由器找不到任何路由.

我有什么方法可以压制'/'?我试过htmlentities但它没用.

Ric*_*ing 3

我强烈推荐Joe Riggs 的 Create URL Safe Encrypted String

提供的代码是过程性的,但转换为 OO 非常简单。我已经用它来完成您正在做的事情,其中​​对一些信息(通常是用户电子邮件和 ID 的哈希值)进行编码/加密,以便用户单击以激活其帐户。

您要查看的函数是url_base64_decodeurl_base64_encode,其中某些字符被重写为 url 安全(例如,将/其删除并替换为~)。

[编辑]

这是我的班级基于上述代码的键盘:http://codepad.org/lzevA4k1

用法:

$cryptUtil = new RPK_Crypt();
$string = 'Unencrypted string';
$eString = $cryptUtil->encrypt($string);
$dString = $cryptUtil->decrypt($eString);
var_dump($dString == $string); //true
Run Code Online (Sandbox Code Playgroud)