【问题标题】:JavaScript MD5 hashing vs Java Applet MD5 hashing?JavaScript MD5 哈希与 Java Applet MD5 哈希?
【发布时间】:2012-09-19 05:48:32
【问题描述】:

最近我遇到了一个项目,它使用 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
  1. 此方法是否仅用于 JS 和 Applet 的浏览器兼容性,或者 Applet 在 MD5 散列方面优于 javascript 的任何优势?
  2. 在这种情况下,小程序有什么安全优势吗?

【问题讨论】:

  • 这就是这个意思。你真的不需要在发送密码之前加密。

标签: java javascript security applet md5


【解决方案1】:

在客户端散列密码和用户名(?)没有安全目的。在服务器上存储散列密码的最大好处是,万一密码数据库遭到破坏,不会泄露任何实际有效的密码。然而,当密码在客户端被散列时,散列实际上是一个密码——一个以明文形式存储在服务器上的密码,因此没有提供任何安全优势。

关于使用小程序,我不确定小程序的实现是什么,但它似乎没有为使用内置功能提供任何额外的好处。

【讨论】:

  • 客户端散列可以作为最小的反嗅探措施是有效的,只要服务器对结果应用一轮(或多轮)进一步的散列,并且有办法知道当客户端没有散列(例如JS关闭)时,它可以补偿。如果可以的话,当然最好使用 HTTPS。
猜你喜欢
  • 2014-05-19
  • 2020-12-08
  • 1970-01-01
  • 2012-08-17
  • 2013-08-20
  • 2011-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多