如何在 java 中使用 XXD

How to use XXD in java

如果我运行 echo 'E4:C8:C1:51:1A:58:1E:A6:0A:DF:E0:59:CA:4E:60:66:0B:36:0F:24:EA:76:93:39:61:F7:79:60:B2:2F:DE:B6' | xxd -r -p | openssl base64 在终端中它会打印 5MjBURpYHqYK3+BZyk5gZgs2DyTqdpM5Yfd5YLIv3rY=。如何使用 java?

获得相同的结果

在冒号分隔符上拆分 String。将每个十六进制数字解析为 byte[],然后对该字节数组进行 base64 编码。

String s = "E4:C8:C1:51:1A:58:1E:A6:0A:DF:E0:59:CA:4E:60:66:0B:36:"
    + "0F:24:EA:76:93:39:61:F7:79:60:B2:2F:DE:B6";
String[] split = s.split(":");
byte[] arr = new byte[split.length];
for (int i = 0; i < split.length; i++) {
    arr[i] = (byte) Integer.parseInt(split[i], 16);
}
String o = java.util.Base64.getEncoder().encodeToString(arr);
System.out.println(o);

产出

5MjBURpYHqYK3+BZyk5gZgs2DyTqdpM5Yfd5YLIv3rY=