MD5二次加密的小例子

 说到md5加密技术,很多人其实不陌生,但是对于新手而言,可能少有接触的机会,本文就md5进行阐述并附带例子。
MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。

以上是百度给我们的一个解释,其实我们可以理解为一种将消息文字进行转译的过程,达到在数据传输中,安全可靠的作用,即便是第三方获取你的数据也不能做任何有效的操作,从而使得系统安全得到保证。

        那么如何使用MD5加密,在我们平常项目中应用呢?以下是一个二次加密的案例,供给初学者进行参考。

本例子是在ssm框架下的。



@Controller
public class control {

//注解注入
@Resource(name="userService")
private UserService userService;
//  调用自定义md5接口
MD5 md =new MD5();
// 登陆
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(User user, HttpSession session) {
       //加密验证
User user2=new User();
user2.setName(user.getName());
String pass=md.md5(user.getPassword());
String pass1=md.md5(pass);
user2.setPassword(pass1);

User user1=userService.login(user2);
session.setAttribute("user", user1);
return "index";
}
// 注册
@RequestMapping(value="/regist",method=RequestMethod.POST)
public String register(User user){
User user1=new User();
user1.setId(user.getId());
user1.setName(user.getName());
                //MD5加密处理
String pass=md.md5(user.getPassword());
String pass1=md.md5(pass);
user1.setPassword(pass1);
user1.setUserStatus(1);
userService.register(user1);
return "index";
}


在以上我们所说的control,也就是action层中进行一个调用MD5的操作,以下是MD5类封装的代码。

//  MD5类
import java.security.MessageDigest;
        import java.security.NoSuchAlgorithmException;

public class MD5 {
public String str;
public String md5(String plainText) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(plainText.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
str = buf.toString();
return str;
//System.out.println("result: " + buf.toString());// 32位的加密
//System.out.println("result: " + buf.toString().substring(8, 24));// 16位的加密
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值