package com.necsthz.questionnaire.util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5 {
public static String createID (String key) throws NoSuchAlgorithmException {
key = String.valueOf(System.currentTimeMillis()) + key ;
StringBuffer buf = null ;
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(key.getBytes());
byte b[] = md.digest();
int i;
buf = new StringBuffer("");
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));
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return buf.toString().substring(8, 24); // 16位的加密
// return buf.toString());// // 32位的加密
}
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
System.out.println(MD5.createID("test"));
}
}
分享到:
相关推荐
描述中的“**使用C++实现字符串计算16位md5和32位的md5**”意味着我们需要用C++语言编写代码,处理输入的字符串,通过特定算法生成16位和32位的MD5摘要。在C++中,这通常涉及到对字符串进行二进制操作、使用位运算...
4. **最终化**: 处理完所有块后,将中间变量与初始值进行异或操作,得到最终的128位哈希值,再转换为32位的16进制字符串。 描述中提到,该工具已被长时间使用,但在密码安全性方面,MD5已经不再推荐。现代密码存储...
接着,通过循环将每个字节转换为两位的十六进制字符串,拼接成最终的32位MD5值。 如果要生成"36位MD5加密字符",我们需要进一步处理这个哈希值,例如添加分隔符或者使用其他字符集。但请注意,36个字符无法直接表示...
MD5加密 32位加密字符串 MD5加密 32位加密字符串 MD5加密 32位加密字符串
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,设计用于生成一个128位(16字节)的散列值,通常表示为32位的十六进制数字,也就是32个字符的字符串。这个过程被称为MD5哈希或MD5校验和,它在信息技术...
MD5,全称为Message-Digest Algorithm 5,是一种广泛使用的哈希函数,设计用于生成一个固定长度的摘要,通常为128位,通常表示为32个十六进制数字。在IT领域,MD5主要被用作数据完整性检验,确保文件在传输或存储...
生成字符串的16位和32位md5码,方便程序开发时用
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的信息映射为一个固定长度的摘要值,通常是32位的十六进制字符串。MD5在信息安全领域扮演着重要的角色,常用于数据校验、密码存储等...
在VB(Visual Basic)环境中,开发一个MD5码生成器可以帮助用户快速计算字符串的MD5值,这对于数据校验、密码存储或文件完整性检查等场景非常有用。 MD5的工作原理基于密码学中的散列函数概念,它将输入数据通过一...
MD5,全称为Message-Digest Algorithm 5,是一种广泛使用的哈希函数,设计用于生成一个固定长度的摘要,通常是一个128位的二进制数,以16进制表示为32位的字符串。这个工具主要是用来计算字符串或文件的MD5值,它在...
计算完成后,通常会将得到的16字节MD5摘要转换为可读的32位十六进制字符串。 5. **安全性和局限性**:虽然MD5在很多场景下仍然有效,但它已经不再被认为是一个安全的哈希函数,因为它存在碰撞攻击的可能性,即两个...
MD5算法对这些字节进行多次迭代计算,最后得到一个16字节的摘要,再以16进制形式展示,即32个字符的字符串。 3. **代码实现**:在Java中,我们可以使用`java.security.MessageDigest`类来实现MD5加密。例如,`MD5....
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的数据转化为固定长度的128位(16字节)的摘要值,通常以32位的十六进制数字形式展示。 Delphi是一款强大的面向对象的编程语言和集成...
2. 对该字符串进行MD5计算,得到16进制的32位摘要。 3. 选择摘要的一部分,比如前8位或后8位,确保这部分在所有可能的日期和序列号组合下不会产生重复。 4. 将选中的16进制数字转换为10进制,然后对1000000(即6位...
它能够将任意长度的信息映射为固定长度的输出,通常是一个128位(16字节)的二进制数,通常以32个十六进制数字的形式表示。MD5的主要用途在于数据完整性校验和身份验证,尤其在文件传输、软件下载和密码存储等领域。...
标题中的“字符串、文件MD5值计算工具”指的是一个程序,能够快速计算出字符串和文件的MD5哈希值。这个工具简化了MD5计算的过程,用户只需输入字符串或者直接将文件拖拽到程序界面上,程序就能自动计算出对应的MD5值...
6. **输出结果**:计算出的MD5摘要通常以32位的十六进制字符串形式展示,可以通过遍历16字节的摘要数组,并对每个字节进行两次转换(每次8位)得到对应的十六进制字符。 7. **安全性和碰撞**:虽然MD5曾被认为是...
MD5加密工具是专门处理MD5哈希值的软件,如标题所示,它可以对16位和32位的MD5字符串进行加密操作。在描述中提到的"16位"和"32位"实际上可能指的是MD5哈希值的显示形式。通常MD5的摘要都是32位的,即32个十六进制...
3. **结果展示**:生成器会以32位的十六进制字符串形式显示MD5摘要,方便比对和记录。 4. **文件验证**:当下载一个文件后,可以通过比较下载文件的MD5值与原始文件的MD5值来验证文件是否完整无误,这是防止数据...
MD5是一种不可逆的散列函数,其主要功能是接收输入(通常是字符串)并生成一个固定长度的输出(散列值)。这个输出通常是一个32位的十六进制数,每个字符代表4位的二进制数。由于其不可逆性,即使知道散列值也无法...