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位加密.
在提供的压缩包文件“MD5”中,可能包含了一个Java程序示例,演示了如何使用MD5加密并生成32位小写的哈希值。这个程序可以作为一个基础模板,帮助开发者快速集成MD5功能到自己的项目中。 总之,MD5是一种便捷的哈希...
这是一个MD5加密的算法,可以是16位,也可以是32位。算法不需C#的内核引用即可实现,是学习MD5算法的一个很好的例子。
总的来说,C语言实现的MD5算法在STM32单片机上的应用,需要对C语言编程、嵌入式系统开发以及MD5算法本身有深入理解。通过 lwIP协议栈中的MD5功能,可以增强系统的安全性和可靠性,特别是在网络通信和数据保护方面。
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,设计用于生成一个固定长度的数字摘要,通常为32位的16进制表示,即32个字符。这个摘要是由任意长度的数据计算出来的,它具有单向性和唯一性,即相同的...
### MD5加密算法详解 #### 一、MD5算法简介 MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,它能够接收任意长度的信息,并产生一个128位(16字节)的散列值。该算法由Ron Rivest在1991年设计,作为...
在探讨40位MD5加密与32位MD5加密的区别之前,我们首先需要了解MD5(Message-Digest Algorithm 5)的基本概念及其工作原理。MD5是一种广泛使用的散列函数,可以将任意长度的数据转换成一个固定长度的128位(16字节)...
纯PB6实现MD5的16位以及32位加密算法,可以轻松升级到任意版本的PB,内附PB6.5的代码演示程序
"C++ MD5加密32位小写"指的是使用C++实现的MD5算法,其输出的哈希值是32位的十六进制字符串,且全部为小写字母。 在C++中实现MD5加密通常涉及以下几个关键步骤: 1. **导入库**:首先需要包含MD5相关的头文件,这...
标题中的"MD5加密算法(16位,32位)"可能是指MD5哈希值的两种常见表现形式。通常,MD5生成的是32位(128位二进制转换为16进制后为32个字符)的哈希值。而“16位”可能指的是将完整的32位哈希值进一步简化,例如取前16...
综上所述,"MD5_加密算法程序_C51验证可以用"的项目涉及了MD5哈希算法的理论和实践,以及如何在8051单片机的C51环境下实现和验证这一算法。这对于了解嵌入式系统中的数据安全和程序设计具有实际价值。
1. **初始化**: 初始化四个32位的变量A、B、C和D,它们代表了MD5算法的四个工作寄存器。初始值通常是固定的常量。 2. **处理消息块**: 将输入数据分块处理,每个块为512位(64字节)。MATLAB中可能通过`reshape`...
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,设计用于生成一个128位(16字节)的散列值,通常表示为32位的十六进制数字,也就是32个字符的字符串。这个过程被称为MD5哈希或MD5校验和,它在信息技术...
4. **生成摘要**: 经过一系列运算后,MD5的状态缓冲区被转换成最终的128位摘要,然后转换成32位的十六进制字符串,这就是MD5的加密结果。 在`Md5.cpp`文件中,我们可以看到C++实现MD5的具体代码。通常,会有一个类...
在标题中提到的"MD5加密(支持32位和16位加密)",实际上是指MD5哈希值的显示形式。32位MD5哈希是完整的128位二进制数以16进制表示,共32个字符;而16位通常是指取这32位哈希值的前16个字符,这减少了唯一性的保证,...
- **32位与16位**:通常所说的32位MD5是原始MD5算法的输出,是一个128位的二进制数,以16进制表示就是32个字符。16位MD5通常是取32位MD5的前半部分(即前16个字符)。 2. **C++实现MD5** - **库的使用**:在C++中...
VBA MD5加密 算法
1、 对字符串进行MD5不可逆算法加密,生成32位MD5密码; 2、对文件生成32位MD5指纹,确保文件在传输使用过程中没有被修改,没有出错,没有被植入木马、病毒等; 3、比对文件的MD5指纹,确定文件是否被修改(如果仅靠...
MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特...
在给定的压缩包中,`MD5.cpp` 和 `MD5.h` 文件是实现MD5加密算法的源代码。`MD5.cpp` 文件包含了MD5算法的具体实现,可能包括了MD5的初始化、更新、最终化等核心步骤。而 `MD5.h` 文件则可能定义了相关的类或函数...