最近我遇到了一个使用MD5哈希在登录时发布用户名和密码的项目..但我看到的有点奇怪,他们使用Applet和JavaScript进行散列,就像Applet不在那里一样,然后JavaScript工作。
代码如下:
var username=document.getElementById('username');
var password=document.getElementById('password');
try {
encUsername = appletObject.encryptMessage(username);
encPassword = appletObject.encryptMessage(password);
} catch (e) {
encUsername = hex_md5(username);
encPassword = hex_md5(password);
}
//post encUsername & encPassword for validation
答案 0 :(得分:2)
在客户端散列密码和用户名(?)不起作用。在服务器上存储散列密码的最大好处是,如果密码数据库被泄露,则不会泄漏实际的有效密码。但是,当密码在客户端进行哈希处理时,哈希实际上是一个密码 - 一个密码,存储在服务器上的clear中,因此没有任何安全优势。
关于使用applet,我不确定applet的实现是什么,但它似乎没有为使用内置函数提供任何额外的好处。