打开题目,获得字符串
d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9e1e6b3e3b9e4b3b7b7e2b6b1e4b2b6b9e2b1b1b3b3b7e6b3b3b0e3b9b3b5e6fd
目测16进制,怀疑是某个文件,送进010,发现不知道是什么文件格式,尴尬
直接转换为字符串未遂
考虑转为其它进制,这是个啥?
要不两两分开?这么长一个字符串,太麻烦了,不如自己写代码,话不多说,上java
/**
* 16转10,10转ascii,ascii转字符串
*
* @Author: Jack Jparrow
* @Date: 2021-10-09 18:51:28
* @Last Modified by: Jack Jparrow
* @Last Modified time: 2021-10-09 19:26:15
*/
public class misc1 {
public static void main(String[] args) {
String str = "d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9e1e6b3e3b9e4b3b7b7e2b6b1e4b2b6b9e2b1b1b3b3b7e6b3b3b0e3b9b3b5e6fd";
int count = 0;
for (int i = 0; i < str.length(); i++) {
count++;
if (count == 2) {
String sp_str = str.charAt(i - 1) + "" + str.charAt(i);// 两字符一组分离字符串作为16进制
Integer dec = Integer.parseInt(sp_str, 16);// 转10
System.out.print(dec + " ");
count = 0;
}
}
}
}
感觉每一段正好比ascii多128,减掉,试试直接输出字符串
/**
* 16转10,10转ascii,ascii转字符串
*
* @Author: Jack Jparrow
* @Date: 2021-10-09 18:51:28
* @Last Modified by: Jack Jparrow
* @Last Modified time: 2021-10-09 19:28:35
*/
public class misc1 {
public static void main(String[] args) {
String str = "d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9e1e6b3e3b9e4b3b7b7e2b6b1e4b2b6b9e2b1b1b3b3b7e6b3b3b0e3b9b3b5e6fd";
int count = 0;
for (int i = 0; i < str.length(); i++) {
count++;
if (count == 2) {
String sp_str = str.charAt(i - 1) + "" + str.charAt(i);// 两字符一组分离字符串作为16进制
Integer dec = Integer.parseInt(sp_str, 16);// 转10
char c = (char) (dec - 128);// 转字符串
System.out.print(c);
count = 0;
}
}
}
}
成功输出flag