- UID
- 34331
注册时间2007-8-14
阅读权限50
最后登录1970-1-1
感悟天道
TA的每日心情 | 开心 3 天前 |
---|
签到天数: 1992 天 [LV.Master]伴坛终老
|
程序注册算法的方式为:
读入注册名和注册码,注册码的长度应该为11位,且第6位必须为‘-’,字符即是:
将:【注册码第 7位的ASCII值 - 注册码第1位的ASCII值 + $30】的结果 重新写回 注册码的第1位;
将:【注册码第 8位的ASCII值 - 注册码第2位的ASCII值 + $30】的结果 重新写回 注册码的第2位;
将:【注册码第 9位的ASCII值 - 注册码第3位的ASCII值 + $30】的结果 重新写回 注册码的第3位;
将:【注册码第10位的ASCII值 + 注册码第4位的ASCII值 - $30】的结果 重新写回 注册码的第4位;
将:【注册码第11位的ASCII值 - 注册码第5位的ASCII值 + $30】的结果 重新写回 注册码的第5位;
然后这个新生成的11位长度的字符串,取该新字符串的前5位(即上面运算的5个结果),与字符串 PhoXo 比较,只要两者相等,便注册成功了!
Delphi源码为:(支持中文)
procedure TForm1.Button1Click(Sender: TObject);
var
sName,sTemp1,sTemp2:string;
iNameLength:integer;
i:integer; //控制循环次数
begin
sName:=Edit1.Text;//取用户名。
iNameLength:=Length(sName); //取用户名长度
sTemp1:=' ';
if (iNameLength<>11) or (sName[6]<>'-') then
begin
//不在范围内提示假注册码不合法
MessageBox(Form1.handle,'假注册码不合法,请输入11位假注册码,第6位必有为"-"!','友好提示!',MB_OK);
exit;
end;
for i:=1 to 6 do
sTemp2:=sTemp2+sName;
for i:=1 to 5 do
begin
case i of //注册码第7,8,9,10,11位依次和字符串PhoXo运算
1: sTemp1 :=sTemp1+ chr(ord(sName) + ord('P')-$30);
2: sTemp1:= sTemp1+chr(ord(sName) + ord('h')-$30);
3: sTemp1 :=sTemp1+ chr(ord(sName) + ord('o')-$30 );
4: sTemp1 :=sTemp1+ chr($30 - ord(sName) + ord('X'));
5: sTemp1 :=sTemp1+ chr(ord(sName) + ord('o')-$30 );
end;
end;
Edit2.Text:=sTemp2+sTemp1;
end;
end. |
|