private boolean checkSN(String userName, String sn) {
try {
if(userName.length() != 0 || sn.length() != 0) {
if(userName == null || userName.length() == 0) {
return false;
}
if(sn == null || sn.length() != 16) {
return false;
}
MessageDigest messageDigest0 = MessageDigest.getInstance("MD5");
messageDigest0.reset();
messageDigest0.update(userName.getBytes());
String s2 = MainActivity.toHexString(messageDigest0.digest(), "");
StringBuilder sb = new StringBuilder();
for(int i = 0; i < s2.length(); i += 2) {
sb.append(s2.charAt(i));
}
if(!sb.toString().equalsIgnoreCase(sn)) {
return false;
}
}
return true;
}
catch(NoSuchAlgorithmException e) {
e.printStackTrace();
return false;
}
}
这个方法主要用于验证用户名和序列号。用户名必须非空,序列号必须非空且长度为16。然后,它会计算用户名的MD5哈希,并与序列号进行比较。如果两者匹配,则返回 true
;否则返回 false。
一开始没有头绪,可能是信息量不够。所以到处找找。在strings.xml中竟然由md5的值。
用MD5解密工具,得到:YOU_KNOW_。但这个并不是答案,在题目的zip文件里还有一个docx文件,里面写着:不懂安卓,所以就只是和安卓扯了扯边,,,Have fun~
所以答案:YOU_KNOW_ANDROID 。