关于MD5加密,登录,随机码

1.用户登录时,用js对密码+随机码,进行md5,然后再传送到服务端.保证每次传送的字符串都不同,这样就算被窥探到信息,密码也不会被破.步骤如下:
    在登录页面,先对输入密码进行MD5加密,再对随机码进行MD5加密,再把加密后的两个字符串拼起来,再进行一次MD5加密,传到服务端.服务端进行验证时,先取出DB中的密码,再从session中取出随机码,将随机码MD5后与从DB取出的密码拼成一个字符串,再与客户端传过来的比较,相同则登录成功.
客户端MD5加密的js包可到:http://pajhome.org.uk/crypt/md5/index.html下载.
js加密码方法:hex_md5("密码");需引入md5.js文件(在附件中)
服务端MD5加密的java类如下:
public class Md5 {
public static String encrypt(String source){
StringBuffer sb = new StringBuffer("");
try {
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
messageDigest.update(source.getBytes());
byte[] b = messageDigest.digest();
sb = new StringBuffer(2 * b.length);
for(int i = 0 ; i < b.length ; i ++){
int low = (int)(b[i] & 0x0f);
int hight = (int)((b[i] & 0xf0) >> 4);
sb.append(Integer.toHexString(hight));
sb.append(Integer.toHexString(low));
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}

return sb.toString();
}
}

2.新增用户,修改密码,都是在客户端先把密码进行MD5加密后,再传到服务端.

这样做能保存登录时足够安全(中间人攻击除外),但是新增用户,修改密码时,如果用户加密后的密码被窃取,依然存在隐患.
3.随机码用kaptcha(或jcaptcha),下载地址为:http://code.google.com/p/kaptcha/


附:javar 的MD5加密简便方法:
package org.apache.commons.codec.digest;
String passwordMd5 = DigestUtils.md5Hex("123456");

猜你喜欢

转载自qingwei201314.iteye.com/blog/1113682