- UID
- 3725
注册时间2005-10-14
阅读权限30
最后登录1970-1-1
龙战于野
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
评分
-
查看全部评分
|