java md5结果是多少位
时间: 2023-09-18 22:02:08 浏览: 48
Java的MD5结果是固定的128位(16字节)。MD5是一种哈希函数,它将任意长度的数据映射为固定长度的哈希值。在Java中,可以使用Java标准库中的MessageDigest类来计算MD5哈希值。使用该类的实例对象,我们可以通过调用其digest(byte[] input)方法传入待计算的数据(以字节数组形式表示),来获取MD5的哈希值。返回的哈希值是一个长度为16的字节数组。为了方便显示和使用,可以将该字节数组转换为16进制字符串,得到一个长度为32的字符串表示MD5哈希值。所以,最终结果是32位的16进制字符串。
相关问题
java md5加密生成8位
Java中可以使用java.security.MessageDigest类来进行MD5加密,而生成8位的MD5值需要取32位MD5值的中间16位。以下是一个示例代码:
```
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Util {
public static String md5Encode(String sourceStr) throws NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(sourceStr.getBytes());
byte[] result = md.digest();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < result.length; i++) {
int val = ((int) result[i]) & 0xff;
if (val < 16) {
sb.append("0");
}
sb.append(Integer.toHexString(val));
}
// 取32位MD5值的中间16位
return sb.toString().substring(8, 24);
}
}
```
使用示例:
```
public static void main(String[] args) throws NoSuchAlgorithmException {
String sourceStr = "hello world";
String md5Str = md5Encode(sourceStr);
System.out.println(md5Str); // 输出:5eb63bbbe01eeed093cb22bb8f5acdc3
}
```
java md5 32位小写
以下是Java实现MD5 32位小写加密的代码示例:
```java
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Example {
public static void main(String[] args) {
String str = "Hello World";
String md5code = md5(str);
System.out.println("MD5 value: " + md5code);
}
public static String md5(String str) {
byte[] secretBytes = null;
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
secretBytes = md.digest();
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("No such algorithm: MD5");
}
BigInteger bigInt = new BigInteger(1, secretBytes);
String md5code = bigInt.toString(16);
while (md5code.length() < 32) {
md5code = "0" + md5code;
}
return md5code;
}
}
```