`
javadingle2008
  • 浏览: 66196 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java中使用MD5加密算法进行加密

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

    (一)消息摘要简介

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

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

    两个不同的报文难以生成相同的摘要难以对指定的摘要生成一个报文,而可以由该报文反推算出该指定的摘要代表:美国国家标准技术研究所的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;
    }
分享到:
评论
2 楼 lllyq 2007-07-28  
所谓的破解md5只不过可以算出特定解,没什么意义,所以md5还是很安全的,java security方面 可以看看Jasypt
1 楼 diandidemeng 2007-07-28  
貌似md5算法加密,现在都被破解了N次了,为何不用sha128或以上呢?因为这个到目前为止还没有被那些牛人破解掉,请教下的?

相关推荐

    java中使用MD5加密算法进行加密.pdf

    需要注意的是,由于MD5的碰撞问题,现在在安全领域,MD5已经不被视为安全的加密算法,更推荐使用如SHA-256或更强的哈希函数。在处理敏感信息,尤其是用户密码时,通常会结合盐值(salt)和多次迭代来提高安全性,...

    MD5加密算法

    在 Java 中使用 MD5 加密算法进行加密非常简单。首先,需要使用 MessageDigest 类来实例化一个 MD5 对象,然后使用 digest 方法来计算输入字符串的摘要。最后,使用 BASE64 编码将摘要转换为字符串。 在实际应用中...

    java实现MD5加密算法

    总结,Java实现MD5加密算法主要是通过`java.security.MessageDigest`类,经过`getInstance("MD5")`获取MD5实例,然后使用`digest()`和`update()`方法处理数据,最终将二进制摘要转换为十六进制字符串。尽管MD5的安全...

    java实现MD5加密解密算法

    java实现MD5加密解密算法,java源代码~

    JAVA中MD5加密密码算法

    在Java编程语言中,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要目的是为了产生一个固定长度的、不可逆的数字摘要,常用于存储密码。MD5算法将任意长度的输入(也叫做预映射,pre-image)通过...

    md5中使用MD5加密算法进行加密

    ### MD5加密算法详解 #### 一、MD5算法简介 MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数(哈希函数),它能够接收任意长度的数据输入,并生成一个固定长度(通常为128位)的十六进制数值作为输出...

    基于JAVA技术的MD5加密算法的设计与实现

    综上所述,基于JAVA技术实现的MD5加密算法不仅可以有效地应用于数字签名、电子商务等多个领域,还具有开发周期短、一次开发多处应用、可跨平台使用、运行效率高等优势。通过结合JavaBean和JSP技术,不仅能够简化开发...

    MD5加密算法的JAVA实现

    MD5加密算法是一种广泛使用的哈希函数,用于生成...总结来说,MD5加密算法在Java中的实现相对简单,通过`java.security.MessageDigest`类即可轻松完成。然而,在实际应用中,应根据具体的安全需求选择合适的散列算法。

    java实现Md5加盐加密算法

    对接接口时用到的一种常用加密算法,常用于验证签名,使用shiro-all-1.4.1.jar,可自行下载

    java实现md5 加密解密

    java实现md5 加密解密(在网络中MD5是著名的不可逆算法,但是如果知道MD5的加密的字符串 则可以通过自己的加密算法对明文进行加密,对加密后的密文与字符串匹配; 匹配成功,表示找到明文;但是此程序的时间耗费较高!仅...

    java 实现MD5加密算法的简单实例

    Java中实现MD5加密算法的简单实例主要介绍了如何使用Java语言来实现MD5加密算法,提供了一个简单的实例帮助大家应用这样的加密算法。MD5加密算法是一种不可逆的加密算法,破解的难度很高,通常将加密后的密文保存在...

    java与c#MD5加密方法得到不一致解决办法

    java与c#MD5加密方法得到不一致解决办法,MD5加密后得到不一致结果

    md5加密算法的两种方法

    在给定的压缩包文件中,有两个MD5加密类:MD5.java和MD5_simple.java。这两个类可能实现了MD5加密的不同方法。通常,MD5加密过程包括以下几个步骤: 1. **预处理**:原始数据会被填充到特定长度,加上一个长度标识...

    \基于JAVA技术的MD5加密算法的设计与实现

    \基于JAVA技术的MD5加密算法的设计与实现

    基于JAVA技术的MD5加密算法的设计与实现.pdf

    MD5算法的设计与实现可以结合JAVA技术中的JSP(Java Server Page)和JavaBean组件,来实现高效、跨平台、安全的加密算法。 MD5算法的描述可以简述为:以512位分组来处理输入字节串的信息,每一分组又被划分为16个32...

    微信支付签名MD5.js加密算法

    使用微信支付签名MD5加密算法。可以使用,可以根据微信签名工具验证,是一样的。 如果提示“签名失败“,就要考虑到key只是否一致。统一下单和发起支付时的key值要一样的。

    常用MD5加密算法和3-DES加密算法java实现

    本文将详细介绍如何在Java环境中实现两种常见的加密算法:MD5加密算法和3-DES加密算法。 #### 一、MD5加密算法 **1.1 MD5算法简介** MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,可以生成一个...

    MD5加密32位小写

    在提供的压缩包文件“MD5”中,可能包含了一个Java程序示例,演示了如何使用MD5加密并生成32位小写的哈希值。这个程序可以作为一个基础模板,帮助开发者快速集成MD5功能到自己的项目中。 总之,MD5是一种便捷的哈希...

    java_MD5加密算法.doc

    标题:Java MD5加密算法 描述与标签:Java MD5加密算法 知识点: 1. **MD5算法简介**: MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,可以将任意长度的数据(如文件、字符串等)转换为一个固定...

Global site tag (gtag.js) - Google Analytics