【发布时间】:2016-08-18 06:40:26
【问题描述】:
我正在尝试为我的网站用户创建动态头像。类似stackoverflow的东西。我有一个基于字符串生成图像的 PHP 脚本:
path/to/avatar.php?hash=string
我想使用用户电子邮件的 MD5 作为他们头像的名称:(并且 PHP 脚本根据该字符串生成图像)
$email = $_GET['email'];
$hash = md5($email);
copy("path/to/avatar.php?hash=$hash","path/img/$hash.jpg");
现在我想确定一下,我可以使用他们电子邮件的 MD5 作为他们头像的名称吗?我的意思是不是有两个不同的字符串具有相同的 MD5 输出吗?换句话说,我想知道两个不同字符串的输出是否是唯一的?
我不知道我的问题是否清楚......我只想知道,是否有可能复制两封不同电子邮件的 MD5?
【问题讨论】:
-
是的,这是可能的,大约 1 万亿分之一的机会。
-
@AbraCadaver 那么如何生成唯一的字符串?在将用户信息插入数据库之前,我不会访问用户的
id。 -
一位加密专家会过来纠正,但如果你只是想混淆电子邮件地址,MD5 可能没问题。您也可以使用 SHA256 或 512。
-
我不会使用 md5 来散列电子邮件。如果有人使用彩虹桌怎么办?即时垃圾邮件