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

java中使用MD5进行计算摘要

阅读更多

java中使用MD5进行加密

在各种应用系统的开发中,经常需要存储用户信息,很多地方都要存储用户密码,而将用户密码直接存储在服务器上显然是不安全的,本文简要介绍工作中常用的 MD5加密算法,希望能抛砖引玉。
(一)消息摘要简介
一个消息摘要就是一个数据块的数字指纹。即对一个任意长度的一个数据块进行计算,产生一个唯一指印(对于SHA1是产生一个20字节的二进制数组)。消息摘要是一种与消息认证码结合使用以确保消息完整性的技术。主要使用单向散列函数算法,可用于检验消息的完整性,和通过散列密码直接以文本形式保存等,目前广泛使用的算法有MD4、MD5、SHA-1。

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

(二)对字符串进行加密
/***//**利用MD5进行加密
*
@paramstr待加密的字符串
*
@return加密后的字符串
*
@throwsNoSuchAlgorithmException没有这种产生消息摘要的算法
*
@throwsUnsupportedEncodingException
*/

publicStringEncoderByMd5(Stringstr)throwsNoSuchAlgorithmException,UnsupportedEncodingException...{
//确定计算方法
MessageDigestmd5=MessageDigest.getInstance("MD5");
BASE64Encoderbase64en
=newBASE64Encoder();
//加密后的字符串
Stringnewstr=base64en.encode(md5.digest(str.getBytes("utf-8")));
returnnewstr;
}
调用函数:
String str="0123456789"
System.out.println(EncoderByMd5(str));
输出:eB5eJF1ptWaXm4bijSPyxw==
(三)验证密码是否正确
因为MD5是基于消息摘要原理的,消息摘要的基本特征就是很难根据摘要推算出消息报文,因此要验证密码是否正确,就必须对输入密码(消息报文)重新计算其摘要,和数据库中存储的摘要进行对比(即数据库中存储的其实为用户密码的摘要),若两个摘要相同,则说明密码正确,不同,则说明密码错误。
/***//**判断用户密码是否正确
*
@paramnewpasswd用户输入的密码
*
@paramoldpasswd数据库中存储的密码--用户密码的摘要
*
@return
*
@throwsNoSuchAlgorithmException
*
@throwsUnsupportedEncodingException
*/

publicbooleancheckpassword(Stringnewpasswd,Stringoldpasswd)throwsNoSuchAlgorithmException,UnsupportedEncodingException...{
if(EncoderByMd5(newpasswd).equals(oldpasswd))
returntrue;
else
returnfalse;
}

参考资料
java上加密算法的实现用例
java加密和数字签名编程快速入门
分享到:
评论

相关推荐

    java调用MD5加密方式计算摘要值(有界面)

    在Java中,MD5主要用于数据的完整性校验和密码存储,因为其不可逆性,即使原始数据被篡改,通过MD5计算出的摘要值也会有所不同。 在Java中,我们可以使用`java.security.MessageDigest`类来实现MD5加密。这个类提供...

    Java计算文件MD5值(支持大文件)

    Java计算文件MD5值(支持大文件) package com.hthl.xxtd; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.security.MessageDigest; import org....

    在java中使用MD5进行密码加密

    ### 在Java中使用MD5进行密码加密 #### 知识点概述 在现代软件开发过程中,安全性至关重要。尤其是在处理敏感信息如用户密码时,确保数据的安全性和隐私性尤为重要。MD5(Message-Digest Algorithm 5)是一种广泛...

    MD5_MessageDigest_java_md5_消息摘要_

    MD5(Message-Digest Algorithm 5)是一种广泛用于信息安全领域的哈希函数,它能将任意长度的数据转换为固定长度的输出,通常是32位的16...同时,也可以参考该项目的代码结构和注释,学习如何在实际项目中使用MD5功能。

    java写的 文件MD5码计算工具 及源码

    首先,MD5码的计算原理是通过特定算法将输入的数据(如文件内容)进行多次运算,最终得到一个固定的128位摘要值。这个过程是不可逆的,即无法从MD5码还原原始数据,但相同的输入会产生相同的MD5码,这使得MD5码成为...

    JAVA_对文件MD5加密

    下面我们将详细介绍如何使用Java语言实现对文件进行MD5加密的过程。 #### MD5加密原理 MD5算法通过一系列复杂的数学运算,将输入的信息转换为一个固定的128位输出值。该输出值通常被表示为一个32位的十六进制数,...

    JAVA代码实现MD5编码

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,可以将任意长度的数据转换为固定长度的摘要。在JAVA中实现MD5编码通常是为了数据校验、密码存储等目的,因为MD5能将数据转化为不可逆的128位(16字节)...

    JAVA中MD5加密密码算法

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

    java MD5加密工具类

    下面我们将详细讨论Java中MD5加密的原理、使用场景以及如何实现。 MD5加密的基本原理: MD5算法是一种非对称的加密算法,它将输入的信息通过一系列复杂的数学运算,最终得到一个128位的摘要信息,通常以32位的16...

    md5java代码+md5工具

    在Java中,我们通常使用`java.security.MessageDigest`类来计算MD5哈希值。以下是一个简单的MD5编码示例: ```java import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public ...

    md5 java 应用

    下面我们将深入探讨如何在Java中使用MD5。 首先,Java提供了一个内置的`java.security.MessageDigest`类,它允许我们计算各种类型的摘要,包括MD5。要使用MD5,我们需要先获取一个MD5实例,然后将数据传递给它进行...

    java实现MD5加密算法

    2. **Java中的`java.security.MessageDigest`类**:这是Java标准库提供的用于计算各种消息摘要(包括MD5)的核心类。通过实例化`MessageDigest`并调用其`getInstance("MD5")`方法,我们可以获取一个MD5实例。 3. **...

    java的md5加密解密

    ### Java中的MD5加密与“解密”技术详解 #### 一、MD5算法简介 MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,可以产生一个128位(16字节)的散列值,通常用于确保数据的完整性和一致性。在...

    JAVA生成MD5校验码

    在IT行业中,MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,它可以将任意长度的数据转化为固定长度的128位(16字节)摘要,通常以32位十六进制数的形式表示。这个过程是不可逆的,也就是说,从MD5值...

    MD5_java.rar_MD5 JAVA_java md5_md5_md5算法

    在Java编程语言中,MD5算法通常用于生成固定长度的128位(16字节)摘要,这个摘要通常以32位十六进制数字的形式呈现。 在给定的"MD5_java.rar"压缩包中,包含了两个文件:`MD5_java.java`和`www.pudn.com.txt`。`MD...

    一个比较好用的md5计算工具

    - 集成到文件浏览器:有的工具可以集成到文件资源管理器中,右键菜单直接计算MD5,操作简便。 5. **使用MD5Summer.exe**: - 下载完成后,双击md5summer.exe启动程序。 - 界面中通常会有“添加文件”或“打开”...

    java源码 java 获取文件md5值(用于检测文件完整性) 2018127

    在Java编程中,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,能够将任意长度的数据转化为固定长度的摘要表示,通常用于验证文件的完整性和一致性。本示例代码是关于如何使用Java来计算文件的MD5哈希...

    java中文件的MD5和SHA-1的使用

    Java 中提供了一个类 java.security.MessageDigest,該类是一种提供密码安全消息摘要如 SHA-1 和 MD5 功能的引擎类。该类可以用来计算文件的 MD5 和 SHA-1 值,不需要额外使用第三方组件,且支持超大文件。 在计算...

    MD5加密32位小写

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

Global site tag (gtag.js) - Google Analytics