java中使用MD5加密算法进行加密
展开全部
在各种应用系统的开发中 经常需要存储用户信息 很多地方都要存储用户密码 而将用户密码直接存储在服务器上显然是不安全的 本文简要介绍工作中常用的 MD 加密算法 希望能抛砖引玉
(一)消息摘要简介
一个消息摘要就是一个数据块的数字指纹 即对一个任意长度的一个数据块进行计算 产生一个唯一指印(对于SHA 是产生一个 字节的二进制数组) 消息摘要是一种与消息认证码结合使用以确保消息完整性的技术 主要使用单向散列函数算法 可用于检验消息的完整性 和通过散列密码直接以文本形式保存等 目前广泛使用的算法有MD MD SHA
消息摘要有两个基本属性
两个不同的报文难以生成相同的摘要难以对指定的摘要生成一个报文 而可以由该报文反推算出该指定的摘要代表 美国国家标准技术研究所的SHA 和麻省理工学院Ronald Rivest提出的MD
(二)对字符串进行加密
/** *//**利用MD 进行加密 * @param str 待加密的字符串 * @return 加密后的字符串 * @throws NoSuchAlgorithmException 没有这种产生消息摘要的算法 * @throws UnsupportedEncodingException */ public String EncoderByMd (String str) throws NoSuchAlgorithmException UnsupportedEncodingException { //确定计算方法 MessageDigest md =MessageDigest getInstance( MD ); BASE Encoder base en = new BASE Encoder(); //加密后的字符串 String newstr=base en encode(md digest(str getBytes( utf ))); return newstr; }调用函数 String str=
System out println(EncoderByMd (str))
输出 eB eJF ptWaXm bijSPyxw==
(三)验证密码是否正确
/** *//**判断用户密码是否正确 * @param newpasswd 用户输入的密码 * @param oldpasswd 数据库中存储的密码--用户密码的摘要 * @return * @throws NoSuchAlgorithmException * @throws UnsupportedEncodingException */ public boolean checkpassword(String newpasswd String oldpasswd) throws NoSuchAlgorithmException UnsupportedEncodingException { if(EncoderByMd (newpasswd) equals(oldpasswd)) return true; else return false; } lishixinzhi/Article/program/Java/hx/201311/26374
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询