读书人

MD5撮要计算

发布时间: 2012-10-29 10:03:53 作者: rapoo

MD5摘要计算

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

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

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

String password = "passwordpasswordpasswordpassword";// 生成MessageDigest对象MD5MessageDigest 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());
?

读书人网 >其他相关

热点推荐