最近我遇到一个项目,在登录时使用 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
- 此方法是否仅用于 JS 和 Applet 的浏览器兼容性,或者 Applet 相对于 JavaScript 的 MD5 哈希有什么优势?
- 在这种情况下小程序有什么安全优势吗?
最佳答案
在客户端对密码和用户名(?)进行哈希处理没有任何安全目的。在服务器上存储散列密码的最大好处是,即使密码数据库遭到破坏,也不会泄露实际有效的密码。然而,当密码在客户端进行散列时,散列实际上是一个密码 - 一个以明文形式存储在服务器上的密码,因此不提供任何安全优势。
关于使用小程序,我不确定小程序的实现是什么,但它似乎没有为使用内置功能提供任何额外的好处。
关于JavaScript MD5 哈希与 Java Applet MD5 哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12489202/