一个有趣的验证算法
中兴B860A机顶盒adb调试密码关键算法(libChashCode.so链接库)拼接字符串,对字符串求32位大写MD5摘要,对char数组的简单运算,返回整型和。
int main()
{
char rand;
char mac;
cout << "mac地址:";
cin >> mac;
cout << "随机数 :";
cin >> rand;
cout << getHashcode(rand, mac)<<endl;
return 0;
}
int hashcode(char *md5) {
int length = strlen(md5);
int result = 0;
for (int i=0; i < length; i++) {
result *= 31;
result += md5;
}
return abs(result);
}
int getHashcode(char *rand, char *mac) {
char buffer;
sprintf_s(buffer,"%s%s%s%s%s", "open_ADB", rand, "@", mac, "ZTE_ENCRYPT");
MD5 m_md5;
m_md5.GenerateMD5((unsigned char*)buffer, strlen(buffer));
int Hashcode = hashcode(m_md5.toChar());
return Hashcode;
}
yikuaidao 发表于 2018-8-2 10:48
那个随机数在哪里,多少位数
不带字母开头的,貌似带字母开头的随机数算法一样,只是在java层处理和不带字母的随机数不太一样 yyblues 发表于 2018-8-3 20:09
MD5是自己声明的类吧
是的,验证了确实是MD5算法,所以自己就找了一个md5类贴上去了,毕竟不是自己搞出来的,所以没贴出来 哎呦不错哦 学习学习 学习了 学习分享 谢谢楼主分享 学习学习一下 看不懂哎 优秀的楼值得学习:lol 感谢楼主,,学习