2012-12-16 33 views
0

我正在寻找关于使用PHP加密和解密电子邮件地址的最佳方法的一点指导。加密和解密电子邮件地址的最短途径PHP

原因:

我有一个推荐脚本在我的网站设置,它有一个GET变量,表示使用BASE64_ENCODE()的电子邮件地址转换的URL。我遇到的唯一问题是我得到一个很长的URL链接。不一定非常适合分享。我有更好的选择来生成较短的URL链接,而不是使用base64_encode()和base64_decode()吗?

什么我得到:http://www.domain.com/r/?r=dGhlam9yZGFuZ2FtZUBzYmNnbG9iYWwubmV0

基本上是有缩短的URL没有DB一个更简单的方法?

+2

不使用电子邮件地址,使用一个ID,匹配到数据库中的电子邮件。并请阅读有关回答问题的常见问题解答 – 2012-12-16 21:38:21

+0

为什么不以纯文本格式输出电子邮件? – Ryan

+0

网址编码应该足够用于电子邮件地址 –

回答

1

创建表电子邮件。

Create table emails(
id int auto_increment, 
val varchar(260), -- email field 
); 

现在把你的电子邮件放在这张表中。并使用该id作为推荐链接。所以它会成为

http://www.domain.com/r/?r=3 

,当你得到$_GET['r']消毒它并从数据库中获取相关的电子邮件。

+2

考虑在http://us3.php.net/crypt加密的表中存储电子邮件 - 使用salt,这种方式如果表被破坏,电子邮件不是纯文本 – zamnuts

+2

,但会导致数据无用,无法使用搜索等。不要将加密数据存储在数据库中,但密码(散列)除外。有一些例外 - 但如果你在这里发布它可能高于你的付费等级;-) – 2012-12-16 21:51:31

相关问题