总结的太好了,认真学习!
这可能是一条打好基础的良方!
[ 本帖最后由 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				
					
			
		自己先私下试试看!!!