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

从 http://qingwei201314.iteye.com/blog/1113682 转载

用户登录时,用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");

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值