校验注册码时的技巧

该日志由 samool 发表于 2007-01-22 15:16:51

在进行注册码比较的时候要注意(En代表加密函数)  
  if   En(系列号)=En(注册码)   then  
      ShowMessage('注册成功!')  
  else  
      ShowMessage('注册失败');  
  如果是这样进行判断的话,那么注册码在内存当中就可以直接看到了。避免这样的情况发生.你可以对比较的值进行移位操作这样在内存中出现的值就不是真正的注册码.  
  if   ShlStr(En(系列号))=ShlStr(En(注册码))   then  
      ShowMessage('注册成功!')  
  else  
      ShowMessage('注册失败');  
  还有就是注册成功和注册失败的时候不要作任何的提示,只是可用和不可用功能.  
   
  移位的函数我给出一个,其实你自己可以写自己的移位函数,我只是给出一个参考的:   

  Function   ShlStr(Str:PChar):PChar;   //进行明码变换;  
  var  
      a:LongWord;  
      Int1,Int2:Integer;  
      j,j1:Integer;  
      sum:LongWord;  
      Str1:String;  
  begin  
          Str1:=StrPas(ABC44Str);  
          Int2:=Length(Str1);  
          for   j1:=1   to   Int2   do  
              begin  
                  a:=ord(Str1[j1])   shl   7;  
                  sum:=sum+a;  
              end;  
          Result:=PChar(IntToStr(sum));  
  end;  

该日志标签: none

上一篇: 取MAC地址(集成网卡和非集成网卡)
下一篇: 检测Win2000/XP下的SoftIce

仅有一条评论 »

  1. felixceo felixceo November 22nd, 2007 at 01:45 pm

    猫猫对Delphi真的是有很多的宝贵经验~~

添加新评论 »