php简单编码解码功能仅使用(0-9 A-Z a-z)

时间:2017-05-25 21:15:34

标签: php encryption

我正在设置一个PHP电子邮件跟踪系统,该系统使用url参数来跟踪链接点击。类似的东西:

www.example.com?trackToken=10

我正在寻找一个简单的PHP编码/解码功能,我可以使用一个数字(在这种情况下为10)并严格转换为数字和字母。类似的东西:

www.example.com?trackToken=7aj8nG93nDpw9M9Nk1

我使用mcrypt找到了几种加密/解密函数。但是,加密输出总是包含奇怪的字符。这些奇怪的字符使我的电子邮件难以发送/传送。

有没有人知道只输出数字0-9和字母a-z或A-Z的良好加密功能?另外,我正在寻找一个解密函数来补充加密函数,所以我实际上可以使用它。

我不是在寻找超级安全的东西。只是一种屏蔽实际跟踪令牌的方法,因此用户无法自行更改。

1 个答案:

答案 0 :(得分:0)

Base64在任何现代系统中都应该没问题 - 任何使用PHP处理电子邮件的系统都符合" modern"的定义。绝对没有理由我可以想到限制只是字母数字。唯一的问题是,作为一个网址参数,你不希望有一个' +'或者' /'在字符串中。有base64url来解决这个问题但是它没有标准的PHP函数。您可以使用base64_encode()和str_replace()轻松复制它,并解码str_replace后跟base64_decode():

$coded = str_replace('+','-',str_replace('/','_',base64_encode($original)));

$original = base64_decode(str_replace('_','/',str_replace('-','+',$coded)));