【发布时间】:2012-11-13 22:07:26
【问题描述】:
网站上的常见密码是用 MD5 编码的。我也在考虑将用户名编码为 MD5 中的文件名。我会在基于 Linux 的服务器上使用 PHP。用 PHP 加密文件名到 MD5 除了不解密无法区分之外,还有什么弊端吗?
<? php
if(isset($_POST['register'])){
$username = md5($_POST['username']);
$email = htmlentities($_POST['email'], ENT_QUOTES|ENT_XML1);
$password = $_POST['password'];
$c_password = $_POST['c_password'];
$xml = new SimpleXMLElement('<user></user>');
$xml->addChild('password', md5($password));
$xml->addChild('email', $email);
$xml->asXML('users/'.$username . '.xml');
header('Location: validate.php');
die;
}
?>
【问题讨论】:
-
是的,有:MD5 is broken. 如果您想要工业级哈希,请使用 SHA 系列哈希函数。此外,这不是一种完全加密的方法——理论上,数据是无法从哈希中恢复的。如果您想要真正的加密,请考虑使用 RSA。
-
别听维亚切斯拉夫的。 MD5 很容易被任何脚本小子破解。在台式计算机上花费很短的时间,此外还有可在线搜索的 has/rainbow 表数据库。
-
-
问题是这样做到底有什么意义?除非你打算让人们在他们的名字中使用问号和星号,否则通过 MD5 传递它不会给你带来任何好处。
标签: php javascript linux md5 filenames