2018-09-17 来自0791
摘要:本篇教程介绍了JavaScript基础教程 用户登录明文传输密码问题如何解决,希望阅读本篇文章以后大家有所收获,帮助大家对JavaScript的理解更加深入。
本篇教程介绍了JavaScript基础教程 用户登录明文传输密码问题如何解决,希望阅读本篇文章以后大家有所收获,帮助大家对JavaScript的理解更加深入。
<
用户登录页面,获取到用户密码,用MD5加密,然后进行传输,服务器端获取的是一个加密过的密码。然后把从数据库里面获取的密码也用MD5加密,然后比较,验证登录。
为什么用这种方法呢,当时想了2个方案,一个是换成https服务器,然后购买一个证书(所有需要用钱的都要一层一层审批,我不知道审批下来后,我还有想做不),另一个就是今天要说的,javascript+ Java+md5
---------------------------------------------------------------------------------------------------前端------------------------------------------------------------------------------------------------------------
//MD5加密
function encryptionPassword(){
var hpassword=document.getElementById("cpassword").value;
var hash=MD5(hpassword)
document.getElementById("cpassword").value=hash.substring(22,32);
}
MD5方法的md5.js 代码最后给出,有点多
---------------------------------------------------------------------------------------------------后台------------------------------------------------------------------------------------------------------------
把从数据库获得的密码用MD5加密
password.equals(StringUtil.getMD5Str(operator.getPassword()).substring(22,32))
StringUtil工具类中具体代码如下:
/**
* MD5加密
* @修改时间:2015-06-08
* @修改作者:Wangj
*
*/
public synchronized static final String getMD5Str(String str) {
if (null == str) {
str = "";
}
String MD5Str = "";
try {
// JDK 6 支持以下6种消息摘要算法,不区分大小写
// md5,sha(sha-1),md2,sha-256,sha-384,sha-512
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
messageDigest.update(str.getBytes());
byte b[] = messageDigest.digest();
int i;
StringBuilder builder = new StringBuilder(32);
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
builder.append("0");
builder.append(Integer.toHexString(i));
}
MD5Str = builder.toString();
// LogUtil.println("result: " + buf.toString());// 32位的加密
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return MD5Str;
}
最后是mds.js的代码
----------------