总结的太好了,认真学习!
这可能是一条打好基础的良方!
[ 本帖最后由 MyGod 于 2009-11-23 15:08 编辑 ]
全局变量赋值法比较好。但是我想,如果在判断函数里,开始就给变量赋值为假的话,那么就要找对时机赋值了,是吧。
//-----------------------------------------**/
#include <windows.h>
#include <stdio.h>
char Serial = {
0
}; // 定义31位注册码的buf空间
char* GetSerial(char* UserID)
{
WORD v1, v2, bl, v_si, v3, v4;
int len,i = 0;
byte v_asc, v_f, sn1;
char* p;
const char* Findstr = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
const char* Qwer_str = "Qwert yuiop asdfg hjkl zxcvbnm";
v_si = *UserID;
bl = 1;
v1 = v_si * 100;
v2 = v_si << 9;
len = strlen(UserID) + 1;
p = new char;
memset(Serial, 0, 32);
memset(p, 0, len);
strcpy(p, UserID);
*(p + len - 1) = 1;
do {
v_asc = *(p + bl % len);
v3 = v_asc ^ (v_si >> 8);
v4 = v3 ^ (*(Qwer_str + bl - 1));
sn1 = v4 + len;
sn1 = sn1 % 0x3E + 1;
v_f = *(Findstr + sn1 - 1);
*(Serial + bl - 1) = v_f;
v_si = v_si + v_f;
v_si = v_si * v1 + v2;
bl ++ ;
} while (bl != 0x1F);
return Serial;
}
int main()
{
char* myid = "ID1860529470";
printf("%s\n", GetSerial(myid));
return 0;
}
只学会了一种,简单的。
进来学习一下自己就是0分的那种人
原帖由 Luckly 于 2009-11-30 17:01 发表 https://www.chinapyg.com/images/common/back.gif
//-----------------------------------------**/
#include
#include
char Serial = {
0
}; // 定义31位注册码的buf空间
char* GetSerial(char* UserID)
{
WORD v1, v2, bl, v_si, v3,...
Good Job :loveliness:
占位留影,待编辑
向楼主牛牛学习/:good
自己先私下试试看!!!