论坛首页 入门技术论坛

MD5摘要计算

浏览 2460 次
锁定老帖子 主题:MD5摘要计算
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-01-23  

  在JSP 程 序中,用MD5算法的常用之处就是对用户登录密码的加密和验证了。在数据库中,存放系统用户信息的用户表中常常会有用户登录密码这个字段,如果不对密码作 加密处理,放在这个字段中的密码就会是明文,只要能打开数据库并拥有对用户表的查询权限,就可以直接看到用户的登录密码,这样是不够安全 的。为解决这个问题,可以采用MD5算法来对密码计算摘要,然后把计算后的摘要存放到密码字段中,那么在数据库的用户表中查看到的就不是明文了。

  MD5算法并不是对数据的加密处理,而是对数据采用MD5算法来记录数据特征(称为摘要)的一段字符串,对于同一个数据,计算出来的摘要是相同 的。因此,在用户注册时,就在用户表的密码字段存放根据密码数据用MD5算法计算出来的摘要;在下次登录时,根据用户输入的密码作MD5算法计算摘要处 理,如果计算出来的摘要与用户表中存放的摘要相同,则表示密码正确。

  一般来说,不管要传递的数据有多长,计算出来的摘要总是16或20个字节长。JDK中已带有目前比较成熟的计算摘要的算法,如MD5、SHA等。下面来看MD5计算摘要是如何实现的。

		String password = "passwordpasswordpasswordpassword";
		
		// 生成MessageDigest对象MD5
		MessageDigest MD5 = MessageDigest.getInstance("MD5");
		
		//传入要计算的字符串
		MD5.update(password.getBytes("UTF-8"));
		
		// 计算消息摘要
		byte[] passwordMD5Byte = MD5.digest();
		password = new String(passwordMD5Byte);
		
		System.out.println(password);
		System.out.println(password.length());
 
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics