PHP编码电子邮件地址

Jus*_*tin 4 php hash encode

我需要一种方法PHP来编码一个电子邮件地址,只使用a-zA-Z0-9基本编码而没有任何特殊字符,但然后能够将其解码回原始.

例:

 john+doe@mydomain.com => ENCODE => n6bvJjdh7w6QbdVB373483ydbKus7Qx
 n6bvJjdh7w6QbdVB373483ydbKus7Qx => DECODE => john+doe@mydomain.com
Run Code Online (Sandbox Code Playgroud)

这甚至可能吗?

Ja͢*_*͢ck 7

你可以做一个web safe base64编码:

// encode
$email_encoded = rtrim(strtr(base64_encode($email), '+/', '-_'), '=');

// decode
$email_decoded = base64_decode(strtr($email_encoded, '-_', '+/'));
Run Code Online (Sandbox Code Playgroud)

它转换+/从以base64字母表中较无害的-_.编码步骤还会=在需要时删除尾随字符.