如何在 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=
如果我运行
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=