浏览 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()); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |