`

java中md5算法实例

 
阅读更多

MD5 即:Message-Digest Algorithm 5 (信息-摘要算法),可以保证信息传输的一致,是一种常用的散列算法之一,也可以看做是哈希算法,它将数据运算为128-bits长度的值,用32位的十六进制数字表示。

md5加密用法:

	String getStringFromEntryInternal(T entry) {
		String s = getStringFromEntry(entry);

		return StringUtil.signContent(s, getSalt());
	}

	/**
	 * salt在编码后的串里不可见
	 * 
	 * @return
	 */
	public String getSalt() {
		return StringUtil.EMPTY;
	}
 
public class StringUtil {
       public static final String EMPTY = "";

	public static String signContent(String rawContent, String salt) {
		String md5 = md5(rawContent + salt);

		return rawContent + md5;
	}

}

 md5解密算法:

	T getEntryFromStringInternal(String str) {
		String raw = StringUtil.getRawContent(str, getSalt());
		// System.out.println("getEntryFromStringInternal:" + str);
		if (raw != null)
			return getEntryFromString(raw);
		else {
			return null;
		}
	}
 
	public static String getRawContent(String signedContent, String salt) { // rawContent这里作为一个输出参数
		String rtn = null;

		if (signedContent == null)
			return null;

		int len = signedContent.length();
		if (len <= 32)
			return null;

		String md5 = signedContent.substring(len - 32);// 最后32位
		// System.out.println("validateSignedContent.md5:" + md5);
		rtn = signedContent.substring(0, len - 32);// 原始内容
		// System.out.println("validateSignedContent.rtn:" + rtn);

		if (md5.equalsIgnoreCase(md5(rtn + salt)))
			return rtn;

		return null;
	}
 

测试:

public class TTTT {
	public static void main(String[] args){
		String  sss="this id";
		String mds55=StringUtil.signContent(sss, "");
		System.out.println(mds55);
		System.out.println(mds55.length());
		String unmds55=StringUtil.getRawContent(mds55, "");
		System.out.println(unmds55);
	}
}

 测试结果:

this id46a6f3c92d33264c365fbb495afbe7a6
39
this id
 

 

 

分享到:
评论

相关推荐

    md5算法实例

    在本项目中,"md5算法实例"可能是实现了一个简单的MD5计算功能,用户可以通过输入任何值,程序会返回这个值经过MD5算法处理后的哈希结果。这样的实例通常涉及以下编程知识点: 1. **哈希函数**:理解哈希函数的基本...

    java的MD5算法

    ### Java中的MD5算法 #### 一、简介 在计算机科学领域中,MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,能够将任意长度的数据转换为固定长度的128位(16字节)哈希值。由于其独特的特性,MD5被...

    JAVA中MD5加密密码算法

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

    java实现MD5加密算法

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

    md5算法java

    ### MD5算法在Java中的实现 #### 一、概述 MD5(Message-Digest Algorithm 5)是一种广泛使用的散列算法,它能够将任意长度的数据转换为一个固定长度(通常是128位)的十六进制字符串。这种转换通常被称为“摘要”...

    JAVA实现MD5算法.rar

    这个"JAVA实现MD5算法.rar"压缩包包含了一个名为"MD5Util.java"的文件,我们可以从中学习如何在Java程序中实现MD5加密。 首先,MD5Util.java文件很可能定义了一个类`MD5Util`,这个类通常包含了一系列静态方法,以...

    MD5算法java篇

    ### MD5算法在Java中的实现 #### 一、概述 MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,它能够将任意长度的数据转换为一个固定长度(通常是128位)的十六进制字符串。由于其计算速度快且结果不...

    java使用MD5加密实例

    本文将详细讲解如何在Java中使用MD5进行数据加密。首先,你需要了解MD5的基本原理:MD5算法通过一系列复杂的数学运算,将输入的数据转化为一个固定的128位摘要,这个摘要对于原始数据是唯一的,但即使只改变输入数据...

    MD5算法java的实现

    在Java中,我们可以使用`java.security.MessageDigest`类来实现MD5算法。以下是一个简单的示例代码: ```java import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class...

    MD5算法的Java实现类

    在Java中,实现MD5算法通常涉及到`java.security.MessageDigest`这个类。这个类提供了一种标准的方式来计算各种消息摘要,包括MD5。 下面我们将详细讨论MD5算法以及如何在Java中实现它。 MD5算法的核心思想是通过...

    java实现Md5加盐加密算法

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

    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.java.rar_MD5 JAVA_MD5.ja_java md5_md5_md5 java realization

    在标签"md5_java md5.ja java_md5 md5 md5_java_realization"中,除了重复的信息外,"md5_java"再次强调了这是MD5算法的Java实现,"java_md5"和"md5"是关键词,表明了主题与Java语言和MD5算法相关。 压缩包内的两个...

    JAVA与C#一致的32位MD5加密方法

    由于MD5算法本身是标准的,理论上在任何支持MD5的编程语言中都应该得到相同的输出,不论是在Java还是C#中。然而,实际编码时可能会因为字符串编码格式、字节顺序等问题导致结果不一致,因此这里的目标是确保两种语言...

    java MD5加密 实例 例子

    在Java中,MD5常用于数据的完整性校验和密码存储,因为其产生的摘要具有不可逆性,即无法通过摘要反推出原始数据。下面我们将深入探讨MD5加密在Java中的实现及其应用。 MD5加密的基本原理是,对输入的数据进行一...

    Java的MD5算法

    在`getMD5`方法中,我们通过`getInstance("MD5")`获取一个MD5实例。然后,我们使用`digest()`方法对输入字符串的字节数组进行哈希计算,得到的结果是16字节的二进制数组。为了将这个二进制数组转换为可读的十六进制...

    md.rar_MD-RBAC_MD5 JAVA_MD算法_md5_md5算法

    在给出的压缩包文件中,`md.txt`可能包含了使用上述Java MD5实现计算出的哈希值,而`www.pudn.com.txt`可能是从网站pudn.com下载的资料,可能包含有关MD5算法的进一步信息或者示例代码。 MD-RBAC(Role-Based ...

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

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

    java的md5加密解密

    在Java中,可以通过`java.security.MessageDigest`类来实现MD5算法。 #### 二、MD5加密原理 MD5算法将任意长度的消息压缩成一个固定长度(通常是128位)的散列值。该散列值具有以下特点: 1. **不可逆性**:从...

    JAVA_对文件MD5加密

    - **getMD5 方法**:该方法接收一个`File`对象作为参数,通过`MessageDigest.getInstance("MD5")`获取MD5算法实例,然后使用`FileInputStream`读取文件内容。读取时采用缓冲机制提高效率,每读取一部分数据就调用`...

Global site tag (gtag.js) - Google Analytics