近日在使用frida逆向过程中发现加密后的byte是一个数组,打印出来类似于[23, 22, 10, 34, ........45,23, 109,116],数组中的每个值,与ASCII值对应,即一个数值代表一个字符,每个字符合起来形成字符串。现分享一下Java中的Sting与byte互转的一种实现方法。
一,String转byte
String str = "hello world";
String arr1 = Arrays.toString(str.getBytes());
System.out.println(arr1);
二,byte转String
首先定义一个String转数组的函数
private static int[] fromString(String string) {
String[] strings = string.replace("[", "").replace("]", "").split(", ");
int result[] = new int[strings.length];
for (int i = 0; i < result.length; i++) {
result[i] = Integer.parseInt(strings[i]);
}
return result;
}
再对每个数组中的值进行char转换,然后拼接成字符串
int[] i = fromString(arr1);
String str3 = "";
for (int j = 0; j < i.length;j ++){
str3 = str3 + (char)i[j];
}