`

MD5 加密与解密算法

    博客分类:
  • java
阅读更多

 

 

 

 

public class MD5andKL {

	// MD5加码。32位
	public static String MD5(String inStr) {
		MessageDigest md5 = null;
		try {
			md5 = MessageDigest.getInstance("MD5");
		} catch (Exception e) {
			System.out.println(e.toString());
			e.printStackTrace();
			return "";
		}
		char[] charArray = inStr.toCharArray();
		byte[] byteArray = new byte[charArray.length];

		for (int i = 0; i < charArray.length; i++)
			byteArray[i] = (byte) charArray[i];

		byte[] md5Bytes = md5.digest(byteArray);

		StringBuffer hexValue = new StringBuffer();

		for (int i = 0; i < md5Bytes.length; i++) {
			int val = ((int) md5Bytes[i]) & 0xff;
			if (val < 16)
				hexValue.append("0");
			hexValue.append(Integer.toHexString(val));
		}

		return hexValue.toString();
	}

	// 可逆的加密算法
	public static String KL(String inStr) {
		// String s = new String(inStr);
		char[] a = inStr.toCharArray();
		for (int i = 0; i < a.length; i++) {
			a[i] = (char) (a[i] ^ 't');
		}
		String s = new String(a);
		return s;
	}

	// 加密后解密
	public static String JM(String inStr) {
		char[] a = inStr.toCharArray();
		for (int i = 0; i < a.length; i++) {
			a[i] = (char) (a[i] ^ 't');
		}
		String k = new String(a);
		return k;
	}

	// 测试主函数
	public static void main(String args[]) {
		String s = new String("123123");
//		4297f44b13955235245b2497399d7a93
		System.out.println("原始:" + s);
		System.out.println("MD5后:" + MD5(s));
		System.out.println("MD5后再加密:" + KL(MD5(s)));
		System.out.println("解密为MD5后的:" + JM(KL(MD5(s))));
	}
}


 

分享到:
评论

相关推荐

    md5加密算法

    ### MD5加密算法详解 #### 一、MD5算法简介 MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,它能够接收任意长度的信息,并产生一个128位(16字节)的散列值。该算法由Ron Rivest在1991年设计,作为...

    VBA MD5加密算法实现

    VBA MD5加密 算法

    MD5加密算法的VB6.0类模块实例.doc

    该类模块实例将MD5加密算法与VB6.0结合,实现了文本字符串的加密和文件的加密。 MD5加密算法 MD5(Message-Digest Algorithm 5)是一种常用的哈希函数,可以将任意长度的数据转换为一个128位的散列值。MD5算法主要...

    md5加密算法 C语言(经过测试验证完整版)

    md5加密算法 C语言(经过测试验证完整版) 经过调试验证,与工具结果一致 MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash...

    MD5 加密算法 C++实现源码

    在C++中实现MD5加密算法,通常包括以下几个步骤: 1. **初始化MD5状态**: 创建一个128位的缓冲区,用于存储中间结果,初始化为一组固定的常量。 2. **处理输入数据**: 将输入的明文数据按照512位的块进行处理。...

    md5加密算法源码,c语言源码

    md5加密算法源码: 一 \md5加密是对字符或密码进行的16位或32位等加密方式! 一般在普通MDB数据库经常用到,比如论坛数据库等.有用! 二 \加密解密并不矛盾,比如银行系统的128位加密现在谁可以轻易破的了呢? 虽然md5...

    MD5加密算法

    MD5就是采用单向加密的加密算法,对于MD5而言,有两个特性是很重要的,第一是任意两段明文数据,加密以后的密文不能是相同的;第二是任意一段明文数据,经过加密以后,其结果必须永远是不变的。前者的意思是不可能有...

    VB6.0 MD5加密算法 支持中文(调用Window API计算)

    在VB6.0中实现MD5加密算法,主要是为了确保数据的完整性和不可篡改性,比如在存储密码、数字签名等方面有重要作用。 在VB6.0中实现MD5加密,通常需要调用Windows API函数,因为VB6.0本身并不直接支持MD5。Windows ...

    md5加密算法的两种方法

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

    java实现MD5加密算法

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

    MD5加密算法程序

    在给定的压缩包中,`MD5.cpp` 和 `MD5.h` 文件是实现MD5加密算法的源代码。`MD5.cpp` 文件包含了MD5算法的具体实现,可能包括了MD5的初始化、更新、最终化等核心步骤。而 `MD5.h` 文件则可能定义了相关的类或函数...

    MD5加密算法源码.rar

    在给定的"MD5加密算法源码"中,你可能会看到以下结构: 1. **初始化**: 使用一组预定义的常量初始化四个32位的中间结果寄存器A、B、C和D。 2. **处理消息块**: MD5处理的是512位的消息块,将消息块分为16个32位的...

    VB的MD5加密算法(支持中文)

    VB6的MD5加密,支持中文。找了很久的。VB6的MD5加密,支持中文。找了很久的。VB6的MD5加密,支持中文。找了很久的。

    MD5加密算法需要jar包

    MD5加密 加密算法,jar包学习交流,java研发学习交流MD5加密算法需要jar包,满足基础研发需要

    MD5加密算法的源码及测试程序

    在C#中使用MD5,首先需要引入`System.Security.Cryptography`命名空间,它包含了各种加密和哈希算法。 ```csharp using System.Security.Cryptography; ``` 2. **创建MD5对象**: 使用`MD5.Create()`方法创建一...

Global site tag (gtag.js) - Google Analytics