public static byte[] parseHexStr2Byte(String hexStr) { if (hexStr.length() < 1) return null; byte[] result = new byte[hexStr.length() / 2]; for (int i = 0; i < hexStr.length() / 2; i++) { int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16); int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16); result[i] = (byte) (high * 16 + low); } return result; }
时间: 2023-05-24 22:02:16 浏览: 82
这是一个将十六进制字符串转换为字节数组的方法,其实现细节如下:首先,根据输入的十六进制字符串的长度,创建一个字节数组;然后,对于每两个字符作为一个字节进行处理,遍历整个十六进制字符串,分别将每两个字符转换成一个字节,最后返回转换后的字节数组。
相关问题
public static String bytes2HexStr(byte[] src) { StringBuilder builder = new StringBuilder(); if (src == null || src.length <= 0) { return ""; } char[] buffer = new char[2]; for (int i = 0; i < src.length; i++) { buffer[0] = forDigit((src[i] >>> 4) & 0x0F, 16); buffer[1] = forDigit(src[i] & 0x0F, 16); builder.append(buffer); } return builder.toString(); }
这是一个将字节数组转换成十六进制字符串的方法,它将每一个字节转换成两个字符表示十六进制数,并将这些字符拼接成一个字符串返回。其中,forDigit() 是一个 Java 内置方法,用于将一个数字转换成指定进制下的字符。在这个方法中,它将每个字节的高四位和低四位分别转换成两个十六进制数的字符,然后将它们拼接起来,最终得到一个表示整个字节数组的十六进制字符串。
public static String StringInMd5(String str) {
这是一个 Java 方法,用于将字符串转换成 MD5 哈希值并返回转换后的字符串。具体实现可以参考以下代码:
```java
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public static String StringInMd5(String str) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] bytes = md.digest(str.getBytes());
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
String hex = Integer.toHexString(0xff & b);
if (hex.length() == 1) sb.append('0');
sb.append(hex);
}
return sb.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
}
```
这个方法使用了 Java 提供的 MessageDigest 类来进行 MD5 转换。首先获取一个 MessageDigest 实例,指定要使用的算法为 MD5。然后将输入的字符串转换为字节数组,通过调用 digest 方法计算出 MD5 哈希值。最后将哈希值转换成十六进制字符串并返回。
阅读全文