最近封装算法的SDK给客户使用,领导要求加一个通过读取系统时间来限制客户使用期的功能,于是拙劣的加了一个读取系统时间,并进行MD5加密,与提前写好的MD5库文件进行比对,以验证有效期。
设置有效期,加密并保存成二进制文件:
fstream f;
f.open("configFile", ofstream::app | ios::binary | ofstream::out);
if (!f.is_open())
{
cerr << "file open failed!" << endl;
getchar();
exit(0);
}
for (int i = 20180403; i < 20180431; ++i)//有效期自己设定
{
string s = to_string(i);
unsigned char encrypt[9] = { 0 };
for (int j = 0; j < s.size(); ++j)
{
encrypt[j] = (unsigned char)s[j];
}
encrypt[8] = '\0';
unsigned char decrypt[16];
memset(decrypt, 0, sizeof(decrypt)*sizeof(unsigned char));
MD5Init(&md5);
MD5Update(&md5, encrypt, strlen((char*)encrypt));
MD5Final(&md5, decrypt);
printf("\n加密前:%s\n加密后32位:", encrypt);
for (int ii = 0; ii < 16