我需要一种在PHP
中只使用a-zA-Z0-9
编码电子邮件地址的方法,因此基本上没有任何特殊字符编码,但随后能够将其解码回原始。
的例子:
john+doe@mydomain.com => ENCODE => n6bvJjdh7w6QbdVB373483ydbKus7Qx
n6bvJjdh7w6QbdVB373483ydbKus7Qx => DECODE => john+doe@mydomain.com
这可能吗?
你可以做一个web安全的base64编码:
// encode
$email_encoded = rtrim(strtr(base64_encode($email), '+/', '-_'), '=');
// decode
$email_decoded = base64_decode(strtr($email_encoded, '-_', '+/'));
它将+
和/
从base64字母表转换为更无害的-
和_
。编码步骤还在需要时删除尾随的=
字符。
如果允许使用等号,可以使用base64_encode()
和base64_decode()
另一个选项是bin2hex()
和hex2bin()