Loading
新闻中心库存中心价格中心PDF中心图片中心
ICGLE 电子技术支持中心,为电气人员和相关企业提供全面的信息(IC技术\IC库存\IC图片\PDF资料等)服务
总线设计PCB设计单片机DSPARM
JAVA驱动设计C/C++汇编J2EE网络协议中间件技术嵌入式系统无线通信通信网络模拟技术接口电路显示光电传感与控制EDA/PLD
气流体控制电子产品电机及工具通信设备仪器仪表电线电缆建筑电气低压电器高压电器电源工控自动化广电设备医疗器械More..
电源设计仪器仪表技术专递电路图片电子专栏储存技术汽车电子测量测试音响技术家用电器
成功方案市场分析行业标准应用前沿芯片应用综合专区
java中使用MD5加密算法进行加密
来源:java.chinaitlab.com   作者:
字体大小:[大][中][小]


  在各种应用系统的开发中,经常需要存储用户信息,很多地方都要存储用户密码,而将用户密码直接存储在服务器上显然是不安全的,本文简要介绍工作中常用的 MD5加密算法,希望能抛砖引玉。

  (一)消息摘要简介

  一个消息摘要就是一个数据块的数字指纹。即对一个任意长度的一个数据块进行计算,产生一个唯一指印(对于SHA1是产生一个20字节的二进制数组)。消息摘要是一种与消息认证码结合使用以确保消息完整性的技术。主要使用单向散列函数算法,可用于检验消息的完整性,和通过散列密码直接以文本形式保存等,目前广泛使用的算法有MD4、MD5、SHA-

  消息摘要有两个基本属性:

  两个不同的报文难以生成相同的摘要难以对指定的摘要生成一个报文,而可以由该报文反推算出该指定的摘要代表:美国国家标准技术研究所的SHA1和麻省理工学院Ronald Rivest提出的MD5

  (二)对字符串进行加密

/** *//**利用MD5进行加密
* @param str 待加密的字符串
* @return 加密后的字符串
* @throws NoSuchAlgorithmException 没有这种产生消息摘要的算法
* @throws UnsupportedEncodingException
*/
public String EncoderByMd5(String str) throws NoSuchAlgorithmException,
UnsupportedEncodingException...{
//确定计算方法
MessageDigest md5=MessageDigest.getInstance("MD5");
BASE64Encoder base64en = new BASE64Encoder();
//加密后的字符串
String newstr=base64en.encode(md5.digest(str.getBytes("utf-8")));
return newstr;
}
调用函数:String str="0123456789"

System.out.println(EncoderByMd5(str));

输出:eB5eJF1ptWaXm4bijSPyxw==

  (三)验证密码是否正确

  因为MD5是基于消息摘要原理的,消息摘要的基本特征就是很难根据摘要推算出消息报文,因此要验证密码是否正确,就必须对输入密码(消息报文)重新计算其摘要,和数据库中存储的摘要进行对比(即数据库中存储的其实为用户密码的摘要),若两个摘要相同,则说明密码正确,不同,则说明密码错误。

/** *//**判断用户密码是否正确
* @param newpasswd 用户输入的密码
* @param oldpasswd 数据库中存储的密码--用户密码的摘要
* @return
* @throws NoSuchAlgorithmException
* @throws UnsupportedEncodingException
*/
public boolean checkpassword(String newpasswd,String oldpasswd) throws NoSuchAlgorithmException,
UnsupportedEncodingException...{
if(EncoderByMd5(newpasswd).equals(oldpasswd))
return true;
else
return false;
}
Upload by 小刘(2007-6-4)
IC
IC
推荐技术文章:
·如何用C语言开发DSP嵌入式系统..
·浅析malloc()的几种实现方式..
·用Eclipse+MyEclipse....
·Java中使用接口实现多继承和多态的....
·提升JSP中页面响应速度的七大秘籍绝....
·Static和Final修饰类属性变....
·探讨JAR文件无限可能性..
·Tomcat集群与负载均衡..
·使用Java NIO提高服务端程序的....
·java虚拟机管理大内存..
·EMF模型解析的策略分析..
·编写对GC友好,又不泄漏的代码..
·J2SE5.0新特性之windows....
·java中通过xpath处理含有命名....
·使用Hashtable对字符串进行碰....
·揭开 Java 安全标准的神秘面纱 ..
·java的线程安全四种方式五个等级..
·破除java神话之原子操作都是线程安....
·Java服务器端编程安全必读..
·编写高效的线程安全类..
·用Java向Web站点发送POST请..
·Java多线程的优先级
·基于Java的嵌入式网络视频服务器
·Java源码分析:深入探讨Itera..
·在Java里面调用CUI程序的方法
·从C++到Java--理解面向对象是..
·避免JavaEE项目评估中的常见错误
·XML和Java:一个强大的组合
·J2ME平台下基于手机定位实现的移动..
·Java回归嵌入式无线通信
·用Java实现FTP服务器
·在VxWorks下实现NAT/NAP..
·VxWorks中的地址映射
·基于Rhapsody和VxWorks..
·VxWorks中怎么从Flash B..
·基于嵌入式操作系统VxWorks的S..
·基于VxWorks的bootrom代..
·VxWorks for X86的输入..
·基于LPC2104的VxWorksB..
·嵌入式操作系统VxWorks中TFF..
IC
IC

©2007 版权归ICGLE所有   页面执行时间:109.375毫秒