| 
注册时间2005-10-14
阅读权限30
最后登录1970-1-1UID3725 龙战于野 
 
 TA的每日心情|  | 无聊 2024-12-26 09:55
 | 
|---|
 签到天数: 88 天 [LV.6]常住居民II | 
 
 发表于 2006-7-18 08:40:04
|
显示全部楼层 
| 原帖由 caterpilla 于 2006-7-17 18:10 发表
 代码计算过于繁琐,呵呵,所以没写,关键部分都在上面列着呢
 复制代码
#include "Stdio.h"
#include "Conio.h"
#include "string.h"
#include "ctype.h"
#include<time.h>
int main(void)
{ static char str[30];
  static int str1[30],str2[30],str3[30],str4[]={0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x2F, 0x28, 0x29, 0x3D, 0x3F, 0xA1, 0x5D, 0x3B, 0x3A, 0x5F,0x2D, 0x5B, 0xB4, 0x2B};
  int i;
  static long int a,b,c,d,x,y,z,x1,z1,temp,year,month,day;
  printf("请输入当前年:");
  scanf("%d",&year);
  printf("请输入当前月:");
  scanf("%d",&month);
  printf("请输入当前日:");
  scanf("%d",&day);
  printf("请输入用户名:");
  scanf("%s",str);
  temp=strlen(str);
  for (i=0;i<temp;i++)
        {
        str1[i]=((str[i]+0xc8)^0xde)&0xff;
        }
        for (i=0;i<temp;i++)
                {
                a+=str1[i];
                a*=2;
                a=(a-(temp*2))&0xffff;
                }
                z=a;
                b=a&0xff;
                z>>=1;
                z<<=2;
                b=((z+0xd000)^b)&0xffff;
                        for (i=0;i<20;i++)
                                {
                                x=a+b;
                                x=(x^str4[i])/3;
                                y=((a&0xff)^(b&0xff))&0xff;
                                y=y-((temp<<2)-1);
                                c+=(x+y);
                                c=c&0xffff;
                                }
                                        for (i=temp-1;i>=0;i--)
                                                {
                                                str2[temp-1-i]=((str[i]+0x32)^0xce)&0xff;
                                                }
                                                x=0;y=0;z=0;
                                                for (i=0;i<temp;i++)
                                                        {
                                                        x=d+str2[i];
                                                        y=a-temp;
                                                        y=((y+x)<<3)&0xffff;
                                                        for (z=0;z<0x14;z++)
                                                                {
                                                                x1=(b&0xff)/(c&0xff);
                                                                x1=x1+(a&0xff);
                                                                y=((((y*2)&0xffff)^x1)+1+y)&0xffff;
                                                                }
                                                                y=y>>1;
                                                                z1=(year^0xc8)+(month^0x64)+((day)^0x32);
                                                                d=(y*z1)&0xffff;
                                                        }
                                                        printf("\n注册码(输入时请用大写):%x-%x-%x-%x",a,b,c,d);
                                                        getch();
                                                        return 0;
}
代码冗长,不要见/:D.
 
 [ 本帖最后由 hbqjxhw 于 2006-7-18 12:21 编辑 ]
 | 
 
x本帖子中包含更多资源您需要 登录 才可以下载或查看,没有账号?加入我们 
  评分
查看全部评分
 |