`

MD5算法加密(16位、32位、64位)

 
阅读更多
package com.util;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import sun.misc.BASE64Encoder;

public class MD5{ 

	public static final String Md(String plainText,boolean judgeMD) { 
		StringBuffer buf = new StringBuffer(""); 
		try { 
		MessageDigest md = MessageDigest.getInstance("MD5"); 
		md.update(plainText.getBytes()); 
		byte b[] = md.digest(); 
		int i; 
		for (int offset = 0; offset < b.length; offset++) { 
			i = b[offset]; 
			if(i<0) i+= 256; 
			if(i<16) 
			buf.append("0"); 
			buf.append(Integer.toHexString(i)); 
		} 
//		System.out.println("32位:result: " + buf.toString());//32位的加密 
//		System.out.println("16位:result: " + buf.toString().substring(8,24));//16位的加密 

		} catch (NoSuchAlgorithmException e) { 
		// TODO Auto-generated catch block 
		e.printStackTrace(); 
		} 
		if(judgeMD == true){
			return buf.toString();
		}else{
			return buf.toString().substring(8,24);
		}
		
	} 
	public static final String EncoderPwdByMd5(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;
	}
//测试 
	public static void main(String[] args) { 
		Md("a", true); 
		try {
			System.out.println("64位:result: " + EncoderPwdByMd5("12345678") + "**");
		} catch (NoSuchAlgorithmException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

 

分享到:
评论

相关推荐

    C#实现MD5加密(16位和32位)算法

    c#语言实现的原始MD5加密算法,支持16位加密和32位加密.

    MD5加密32位小写

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

    C#实现MD5加密(16位或32位)算法.txt

    这是一个MD5加密的算法,可以是16位,也可以是32位。算法不需C#的内核引用即可实现,是学习MD5算法的一个很好的例子。

    C语言MD5算法STM32单片机亲测可用

    总的来说,C语言实现的MD5算法在STM32单片机上的应用,需要对C语言编程、嵌入式系统开发以及MD5算法本身有深入理解。通过 lwIP协议栈中的MD5功能,可以增强系统的安全性和可靠性,特别是在网络通信和数据保护方面。

    MD5加密32位16位

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,设计用于生成一个固定长度的数字摘要,通常为32位的16进制表示,即32个字符。这个摘要是由任意长度的数据计算出来的,它具有单向性和唯一性,即相同的...

    md5加密算法

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

    40位MD5加密和32位MD5加密对比.txt

    在探讨40位MD5加密与32位MD5加密的区别之前,我们首先需要了解MD5(Message-Digest Algorithm 5)的基本概念及其工作原理。MD5是一种广泛使用的散列函数,可以将任意长度的数据转换成一个固定长度的128位(16字节)...

    纯PB实现MD5 16位,32位加密

    纯PB6实现MD5的16位以及32位加密算法,可以轻松升级到任意版本的PB,内附PB6.5的代码演示程序

    C++ MD5加密32位小写

    "C++ MD5加密32位小写"指的是使用C++实现的MD5算法,其输出的哈希值是32位的十六进制字符串,且全部为小写字母。 在C++中实现MD5加密通常涉及以下几个关键步骤: 1. **导入库**:首先需要包含MD5相关的头文件,这...

    MD5加密算法(16位,32) .zip_C# MD5_CSharp MD5 32_MD5 CSharp_md5_md5 32

    标题中的"MD5加密算法(16位,32位)"可能是指MD5哈希值的两种常见表现形式。通常,MD5生成的是32位(128位二进制转换为16进制后为32个字符)的哈希值。而“16位”可能指的是将完整的32位哈希值进一步简化,例如取前16...

    MD5_加密算法程序_C51验证可以用

    综上所述,"MD5_加密算法程序_C51验证可以用"的项目涉及了MD5哈希算法的理论和实践,以及如何在8051单片机的C51环境下实现和验证这一算法。这对于了解嵌入式系统中的数据安全和程序设计具有实际价值。

    matlab实现md5算法,md5算法详解,matlab

    1. **初始化**: 初始化四个32位的变量A、B、C和D,它们代表了MD5算法的四个工作寄存器。初始值通常是固定的常量。 2. **处理消息块**: 将输入数据分块处理,每个块为512位(64字节)。MATLAB中可能通过`reshape`...

    MD5加密字符串(32位,16位大小写输出)

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,设计用于生成一个128位(16字节)的散列值,通常表示为32位的十六进制数字,也就是32个字符的字符串。这个过程被称为MD5哈希或MD5校验和,它在信息技术...

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

    4. **生成摘要**: 经过一系列运算后,MD5的状态缓冲区被转换成最终的128位摘要,然后转换成32位的十六进制字符串,这就是MD5的加密结果。 在`Md5.cpp`文件中,我们可以看到C++实现MD5的具体代码。通常,会有一个类...

    MD5加密(支持32位和16位加密)

    在标题中提到的"MD5加密(支持32位和16位加密)",实际上是指MD5哈希值的显示形式。32位MD5哈希是完整的128位二进制数以16进制表示,共32个字符;而16位通常是指取这32位哈希值的前16个字符,这减少了唯一性的保证,...

    C ++ MD5 加密(32位和16位)

    - **32位与16位**:通常所说的32位MD5是原始MD5算法的输出,是一个128位的二进制数,以16进制表示就是32个字符。16位MD5通常是取32位MD5的前半部分(即前16个字符)。 2. **C++实现MD5** - **库的使用**:在C++中...

    VBA MD5加密算法实现

    VBA MD5加密 算法

    md5加密工具及源码16位 32 位

    1、 对字符串进行MD5不可逆算法加密,生成32位MD5密码; 2、对文件生成32位MD5指纹,确保文件在传输使用过程中没有被修改,没有出错,没有被植入木马、病毒等; 3、比对文件的MD5指纹,确定文件是否被修改(如果仅靠...

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

    MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特...

    MD5加密算法程序

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

Global site tag (gtag.js) - Google Analytics