base34Str =
"123456789abcdefghijklmnpqrstuvwxyz"
;
/*
* decode()将base34码串解密(结果长度=可见字符串长度 * 5 / 8)
* 参数szReg -- base34码可见字符串
* 参数Len_Of_Reg -- strlen(szReg)
* 参数outStr -- 输出串
*/
int decode(const char *szReg, int Len_Of_Reg, char *outStr)
{
int i,m,n,iMin,iLen;
char ch_1, ch_2;
char index[256] = {0};
i = 0;
while
(i < Len_Of_Reg)
ch_3 = tolower(szReg[i]);
j = 0;
(j < Len_Of_base34Str)
if
(base34Str[j] == ch_3)
index[i] = j;
break
}
j++;
i++;
n = 0;
iLen = 0;
m = 0;
ch_2 = 0;
ch_1 = index[i];
iMin = (8 - m) > (5 - n) ? (5 - n) : (8 - m);
(n <= m)
ch_1 <<= m;
else
ch_1 >>= n;
ch_2 |= ch_1;
n += iMin;
m += iMin;
(n >= 5)
(m >= 8)
outStr[iLen] = ch_2;
iLen++;
outStr[iLen] = 0;
return
iLen;
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课