这个是一个很简单的MD5码的算法。现在给大家分享一下:
private static String toMd5(byte[] bytes) {
try {
MessageDigest algorithm = MessageDigest.getInstance("MD5");
algorithm.reset();
algorithm.update(bytes);
return toHexString(algorithm.digest(), "");
} catch (NoSuchAlgorithmException e) {
Log.v("he--------------------------------ji", "toMd5(): " + e);
throw new RuntimeException(e);
// 05-20 09:42:13.697: ERROR/hjhjh(256):
// 5d5c87e61211ab7a4847f7408f48ac
}
}
private static String toHexString(byte[] bytes, String separator) {
StringBuilder hexString = new StringBuilder();
for (byte b : bytes) {
hexString.append(Integer.toHexString(0xFF & b)).append(separator);
}
return hexString.toString();
}
算法很简单,希望对大家有所帮助!
对了,不要忘记引入这两个包:
import java.security.NoSuchAlgorithmException;
import android.util.Log;
Log可以不要,我是测试才加上Log的!~~
分享到:
相关推荐
在描述中的“C代码实现”是指使用C语言编写了一个MD5的实现,它可以用于计算任意数据的MD5摘要,类似于Linux系统中的`md5sum`命令。这个程序可能包含了MD5算法的四个主要阶段的代码,并提供了读取输入数据、计算哈希...
在提供的代码片段中,我们看到了一个简单的MD5算法实现。代码中定义了一系列与MD5算法相关的常量和方法。 1. **初始化变量**:定义了四个固定的32位整数作为寄存器的初始值,即`A`、`B`、`C`和`D`。 2. **主方法**...
它将任意长度的数据转化为一个固定长度的摘要,通常是128位,以16进制表示就是32个字符。MD5的主要应用包括数据完整性校验、密码存储和文件校验等。 MD5算法的工作原理可以分为四个步骤:初始化、分块、处理和结果...
- FF函数:A = FF(A, B, C, D, W, k, s, i),其中FF是一个非线性函数,W是输入消息块的一部分,k是轮常数,s是位移量,i是当前操作的编号。 - GG函数:与FF类似,但采用了不同的非线性函数。 - HH函数:同样...
Md5密码算法,把。java文件拽入项目,调用,反回的就是MD5加密算法
MD5算法的核心在于它能够快速地计算出一个散列值,并且对于不同的输入,几乎不可能找到两个不同的输入产生相同的输出。 #### 二、MD5算法流程详解 根据提供的部分文档内容,我们可以深入理解MD5算法的具体步骤。 ...
通常,会有一个类(如`MD5`)封装了上述过程,提供一个接口供外部调用,如`hash1`函数,这个函数接受一个字符串作为参数,返回该字符串的MD5摘要。 `MD5.H`文件则包含了MD5类的定义和相关函数声明。类的成员变量...
在VC++环境中实现MD5加密算法,开发者通常会创建一个包含四个32位整数的数组来存储中间结果,然后按照MD5的步骤逐步更新这个数组。同时,需要处理内存管理和输入数据的读取。在学习和参考提供的代码时,理解这些步骤...
在这个"MD5算法BCB模块"中,提供了一个可以在XE10环境下无缝集成的C++Builder类模块,这意味着开发者可以直接将这个模块导入到他们的项目中,而无需进行任何适应性的代码修改。这对于快速实现MD5计算功能非常方便,...
链接: https://pan.baidu.com/s/1YDd-uSEUDqK-x2lIUjBieA 提取码: ak53 复制这段内容后打开百度网盘手机App,操作更方便哦 按照md5加密算法流程,使用matlab的m语言编写的md5加密算法。
在描述中提到的"MD5压缩算法源码 BCB 工程 + 源码",可能是指包含了一个用Borland C++ Builder (BCB)开发环境编写的MD5实现项目。BCB是 Borland 公司推出的一种C++集成开发环境,它提供了一套用于创建Windows桌面...
MD5算法通过一系列复杂的数学运算(包括位操作、异或、加法等),将输入的消息(例如当前日期和一个编号)转化为一个固定长度的摘要。这个摘要对原始输入具有高度的唯一性,即使微小的输入改变也会导致完全不同的...
MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特...
MD5算法通过对输入消息的处理,能够生成一个128位的固定长度散列值。整个算法流程包括了初始化、消息填充、分组处理等多个步骤,旨在确保输出结果的一致性和安全性。尽管MD5在某些应用场景中已经被更安全的哈希算法...
2. **数据预处理**:MD5算法需要处理的数据是固定长度的块,因此输入数据可能需要填充到最接近的512位边界,并加上一个64位的表示数据总长度的额外字段。 3. **初始化MD5上下文**:通过调用`MD5_Init()`函数初始化...
总的来说,C语言实现的MD5算法在STM32单片机上的应用,需要对C语言编程、嵌入式系统开发以及MD5算法本身有深入理解。通过 lwIP协议栈中的MD5功能,可以增强系统的安全性和可靠性,特别是在网络通信和数据保护方面。
对于C语言实现MD5加密,开发者通常会使用开源库,如MD5-master这个项目可能就是提供了一个C语言实现的MD5算法。这类库通常包括MD5的初始化、更新和最终化步骤,以及将计算出的哈希值转换为字符串的功能。测试代码则...
它能够将任意长度的数据转化为一个固定长度的摘要值,通常是一个128位的二进制数,通常用32个十六进制数字表示。MD5的主要应用是验证数据的完整性和一致性,比如在软件分发、文件传输等领域,通过比较源文件和目标...
1. **初始化**:MD5有四个32位的中间变量A、B、C和D,以及一个128位的缓冲区,用于存储数据块。 2. **预处理**:在计算MD5之前,原始数据会被填充到最接近512位的倍数,然后添加一个128位的填充位和64位的表示原始...
1. **初始化**: MD5的初始状态是一个128位的内部状态向量,由四个32位的整数组成(A、B、C、D)。对于每个新消息,这些值被设置为特定的常数值。 2. **分块处理**: 输入消息被分成连续的512位(64字节)块。如果...