不败的米 发表于 2018-8-2 00:12

一个有趣的验证算法

中兴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;
}

不败的米 发表于 2018-8-2 11:22

yikuaidao 发表于 2018-8-2 10:48
那个随机数在哪里,多少位数

不带字母开头的,貌似带字母开头的随机数算法一样,只是在java层处理和不带字母的随机数不太一样

不败的米 发表于 2018-8-5 21:05

yyblues 发表于 2018-8-3 20:09
MD5是自己声明的类吧

是的,验证了确实是MD5算法,所以自己就找了一个md5类贴上去了,毕竟不是自己搞出来的,所以没贴出来

ys746663912 发表于 2018-8-2 00:49

哎呦不错哦

wjqok 发表于 2018-8-2 00:52

学习学习                  

qqxuanxuan 发表于 2018-8-2 01:36

学习了 学习分享

雨声18 发表于 2018-8-2 08:08

谢谢楼主分享

寂寞-星辰 发表于 2018-8-2 08:26

学习学习一下

我不会告诉你 发表于 2018-8-2 08:30

看不懂哎

Ib_Chloe 发表于 2018-8-2 08:57

优秀的楼值得学习:lol

sstm 发表于 2018-8-2 09:00

dyckill 发表于 2018-8-2 09:09

感谢楼主,,学习
页: [1] 2 3 4 5
查看完整版本: 一个有趣的验证算法