亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ucrypt.pas

?? 1. 發卡服務端:Server 項目文件:autojet.prj 2. 計費客戶端:Client 項目文件:internet.prj Explorer.prj 先啟動Exp
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit UCRYPT;

interface

USES WINDOWS,lzexpand,Sysutils,WINCRYPT,CLASSES,db,DBTABLES,forms,CONTROLS,dialogs;

CONST YEAR2000=36526;

type TSNDESC=CLASS(TBITS)
     PUBLIC
       GUESTID:integer;
       LASTDATE:TDATETIME;
       SID:STRING;
END;


function begincrypt(const KEY:STRING):boolean;
procedure endcrypt;

FUNCTION crypt(const source:string;Final:boolean=false):string;
FUNCTION decrypt(const SOURCE:string;Final:boolean=false):string;

function cryptstring(const source,key:string):string;
function decryptstring(const source,key:string):string;
function cryptstrasc(const source,key:string):string;
function decryptstrasc(const source,key:string):string;

function cryptxtcs(const source:string):string;
function decryptxtcs(const source:string):string;

FUNCTION cryptpassword(const key:string):string;
FUNCTION decryptpassword(const SOURCE,INPUT:string):BOOLEAN;

FUNCTION MAKEsn(PRONUM,GUESTID:INTEGER;NKEY:BYTE;LASTDATE:TDATETIME):string;
FUNCTION decryptsn(const SOURCE:string;sndesc:tsndesc):boolean;

FUNCTION cryptLIMIT(const SOURCE:TDATETIME;CONST GUESTID:LONGWORD;key:string;var DEST:STRING):boolean;
FUNCTION cryptLIMIT0(const SOURCE:TDATETIME;CONST GUESTID:LONGWORD;var DEST:STRING):boolean;
FUNCTION cryptLIMIT1(const SOURCE:TDATETIME;CONST GUESTID:LONGWORD;var DEST:STRING):boolean;
FUNCTION cryptLIMIT2(const SOURCE:TDATETIME;CONST GUESTID:LONGWORD;var DEST:STRING):boolean;
FUNCTION decryptLIMIT(const SOURCE,sid:string;key:string;var DEST:TDATETIME):boolean;
FUNCTION decryptLIMIT0(const SOURCE,sid:string;var DEST:TDATETIME):boolean;
FUNCTION decryptLIMIT1(const SOURCE,sid:string;var DEST:TDATETIME):boolean;
FUNCTION decryptLIMIT2(const SOURCE,sid:string;var DEST:TDATETIME):boolean;

function checklimit:BOOLEAN;

FUNCTION MAKEID(const GUESTID:LONGWORD;THISDATE:TDATETIME;const key:string;VAR SERVICEID:STRING):BOOLEAN;
FUNCTION DECRYPTID(const SOURCE,key:STRING;VAR GUESTID:LONGWORD;VAR LASTDATE:TDATETIME):BOOLEAN;

FUNCTION MAKESID(const GUESTID:LONGWORD;VAR SERVICEID:STRING):BOOLEAN;
FUNCTION DECRYPTSID(const SOURCE:STRING;VAR GUESTID:LONGWORD;VAR LASTDATE:TDATETIME):BOOLEAN;

var
   hProv:HCRYPTPROV;
   hKey:HCRYPTKEY;
   hHash:HCRYPTHASH;
   MYSNDESC:TSNDESC;
implementation

uses finput,SYS_DM,main;

function begincrypt(const KEY:STRING):boolean;
var
   THISKEY:STRING;
   pkey:array of char;
   LEN:DWORD;
   i:integer;
   //ms:array[0..1024] of char;
begin
     result:=false;
     if key='' then
        exit;
     thiskey:=key;
     endcrypt;
     if not CryptAcquireContext(@hProv,nil,nil,PROV_RSA_FULL,0) and
        not CryptAcquireContext(@hProv,nil,nil,PROV_RSA_FULL,CRYPT_NEWKEYSET) then
        exit;
     if not CryptCreateHash( hProv,CALG_MD5,0,0,@hHash) then begin
        endcrypt;
        exit;
     end;
     LEN:=LENGTH(KEY);
     setlength(pkey,len);
     for i:=0 to len-1 do
        pkey[i]:=key[i+1];
     if not CryptHashData(hHash,@pkey[0],LEN,0) then begin
        endcrypt;
        exit;
     end;
     if not CryptDeriveKey(hProv,CALG_RC4,hHash,0{CRYPT_EXPORTABLE},@hKey) then begin
        endcrypt;
        {FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NIL,GetLastError(),GetSystemDefaultLangID(),
           @MS[0],512,NIL);
        SHOWMESSAGE(TRIM(MS)); }
        exit;
     end;
     result:=true;
end;

procedure endcrypt;
begin
     if hHash <> 0 then
        if CryptDestroyHash(hHash) then
           hHash:=0;
     if hKey <> 0 then
        if CryptDestroyKey(hKey) then
           hKey:=0;
     if hProv <> 0 then
        if CryptReleaseContext(hProv,0) then
           hProv:=0;
end;

FUNCTION crypt(const SOURCE:string;Final:boolean=false):string;
var
   PSOURCE:ARRAY OF CHAR;
   datalen:dword;
   I:INTEGER;
BEGIN
     RESULT:='';
     if source='' then
        exit;
     datalen:=lenGTH(source);
     SETLENGTH(PSOURCE,DATALEN);
     FOR I:=0 TO DATALEN-1 DO
         PSOURCE[I]:=SOURCE[I+1];
     if CryptEncrypt(hKey,0,final,0,@psource[0],@datalen,datalen) then
        result:=copy(STRING(psource),1,datalen);
     if final then
        endcrypt;
END;

FUNCTION decrypt(const SOURCE:string;Final:boolean=false):string;
var
   psource:ARRAY OF CHAR;
   datalen:dword;
   I:INTEGER;
BEGIN
     RESULT:='';
     if source='' then
        exit;
     datalen:=lenGTH(source);
     SETLENGTH(PSOURCE,DATALEN);
     FOR I:=0 TO DATALEN-1 DO
         PSOURCE[I]:=SOURCE[I+1];
     if CryptDecrypt(hKey,0,Final,0,@psource[0],@datalen) then
        result:=copy(STRING(psource),1,datalen);
     if final then
        endcrypt;
END;
FUNCTION cryptpassword(const key:string):string;
VAR
   S1,S2:STRING;
   I:BYTE;
begin
      S1:=cryptstring('DWSAP',key);
      S2:='';
      FOR I:=1 TO LENGTH(S1) DO
          S2:=S2+INTTOHEX(ORD(S1[I]),2);
      RESULT:=S2;
end;
FUNCTION decryptpassword(const SOURCE,INPUT:string):BOOLEAN;
VAR
   S1:STRING;
   I:BYTE;
begin
      result:=false;
      if length(source)<10 then
         exit;
      SETLENGTH(S1,5);
      FOR I:=1 TO 5 DO BEGIN
          TRY
             S1[I]:=CHR(STRTOINT('$'+SOURCE[I*2-1]+SOURCE[I*2]));
          EXCEPT
             RESULT:=FALSE;
             EXIT;
          END;
      END;
      result:=decryptstring(S1,input)='DWSAP';
end;
FUNCTION decryptsn(const SOURCE:string;sndesc:tsndesc):boolean;
var
   tmpstr:string;
   I,nkey:BYTE;
   tmpkey:smallint;
   KEYCHECK,TMPNUM:LONGWORD;
   snkey,sn:string;
begin
     result:=false;
     if length(source)<>28 then
        exit;

     snkey:=copy(source,1,20);
     SETLENGTH(TMPSTR,4);
     for i:=10 to 13 do BEGIN
         TRY
            TmPSTR[i-9]:=chr(strtoint('$'+source[i*2+1]+source[i*2+2]));
         EXCEPT
            EXIT;
         END;
     END;
     TMPSTR:=DECRYPTstring(TMPSTR,snkey);
     IF TMPSTR='' THEN
        EXIT;
     if tmpstr<>'Adel' then
        exit;

     TRY
        nkey:=strtoint('$'+source[15]+source[16]);
     EXCEPT
        EXIT;
     END;
     SETLENGTH(SNKEY,10);
     SETLENGTH(SN,10);
     for i:=0 to 9 do begin
         tmpkey:=nkey+i;
         if tmpkey>255 then
            tmpkey:=tmpkey-255;
         snkey[i+1]:=chr(tmpkey);
         TRY
            sn[i+1]:=chr(strtoint('$'+source[i*2+1]+source[i*2+2]));
         EXCEPT
            EXIT;
         END;
     end;
     sn:=copy(sn,1,7)+copy(sn,9,2);
     TMPSTR:=DECRYPTstring(SN,snkey);
     IF TMPSTR='' THEN
        EXIT;

     SN:=COPY(TMPSTR,1,7)+CHR(NKEY)+COPY(TMPSTR,8,2);
     TMPSTR:=DECRYPTstring(SN,'This is legal software. Thank you!');
     IF TMPSTR='' THEN
        EXIT;
     SN:=TMPSTR;

     sndesc.GUESTID:=strtoint('$'+inttohex(ord(sn[5]),2)+inttohex(ord(sn[6]),2)+inttohex(ord(sn[7]),2));
     //日期
     tmpnum:=strtoint('$'+inttohex(ord(sn[9]),2)+inttohex(ord(sn[10]),2));
     if tmpnum=0 then
        tmpnum:=65535;
     if tmpnum<=180 then
        sndesc.lastdate:=date+tmpnum
     else
        sndesc.lastdate:=YEAR2000+tmpnum;
     sndesc.Size:=32;
     KEYCHECK:=strtoint('$'+inttohex(ord(sn[1]),2)+inttohex(ord(sn[2]),2)
             +inttohex(ord(sn[3]),2)+inttohex(ord(sn[4]),2));
     TMPNUM:=2147483648;
     FOR I:=31 DOWNTO 0 DO BEGIN
         IF I<31 THEN
            TMPNUM:=TMPNUM DIV 2;
         IF KEYCHECK>=TMPNUM THEN BEGIN
            KEYCHECK:=KEYCHECK-TMPNUM;
            SNDESC.Bits[I]:=TRUE;
         END ELSE
            SNDESC.Bits[I]:=FALSE;
     END;
     result:=true;
end;
FUNCTION MAKEID(const GUESTID:LONGWORD;THISDATE:TDATETIME;const key:string;VAR SERVICEID:STRING):BOOLEAN;
VAR
   TMPSTR,TMPID:STRING;
   TMPDATE:INTEGER;
   I:BYTE;
BEGIN
     RESULT:=FALSE;
     SERVICEID:='';
     TMPSTR:=INTTOHEX(GUESTID,6);
     TMPDATE:=ROUND(THISDATE-YEAR2000);
     IF TMPDATE<0 THEN
        TMPDATE:=0;
     TMPSTR:=TMPSTR+INTTOHEX(TMPDATE,4);
     SETLENGTH(TMPID,6);
     TMPDATE:=0;
     FOR I:=1 TO 5 DO BEGIN
         TMPID[I]:=CHR(STRTOINT('$'+TMPSTR[I*2-1]+TMPSTR[I*2]));
         TMPDATE:=TMPDATE+ORD(TMPID[I]);
     END;
     TMPDATE:=tmpdate mod 255;
     TMPID[6]:=CHR(TMPDATE);
     tmpstr:=cryptSTRING(tmpID,KEY);
     IF TMPSTR='' THEN
        EXIT;
     TMPDATE:=ORD(TMPSTR[6]);
     TMPSTR:=COPY(TMPSTR,1,5);
     SETLENGTH(TMPID,10);
     FOR I:=0 TO 9 DO
         TMPID[I+1]:=CHR((TMPDATE+I) MOD 255);
     TMPSTR:=CRYPTSTRING(TMPSTR,TMPID);
     IF TMPSTR='' THEN
        EXIT;
     TMPSTR:=TMPSTR+CHR(TMPDATE);
     FOR I:=1 TO 6 DO
         SERVICEID:=SERVICEID+INTTOHEX(ORD(TMPSTR[I]),2);
     RESULT:=TRUE;
END;

FUNCTION MAKESID(const GUESTID:LONGWORD;VAR SERVICEID:STRING):BOOLEAN;
BEGIN
     result:=makeid(guestid,date,'This is Adel Service ID(ASID)',serviceid);
END;

FUNCTION DECRYPTID(const SOURCE,key:STRING;VAR GUESTID:LONGWORD;VAR LASTDATE:TDATETIME):BOOLEAN;
VAR
   S1,S2:STRING;
   I,DATE1,TMPNUM:LONGINT;
BEGIN
     RESULT:=FALSE;
     IF LENGTH(SOURCE)<>12 THEN
        EXIT;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91浏览器打开| 欧美三级乱人伦电影| 91论坛在线播放| 日韩女优毛片在线| 日韩美女久久久| 国产一区二区主播在线| 欧美日韩国产首页| 亚洲国产成人一区二区三区| 日韩va欧美va亚洲va久久| 色综合久久中文字幕综合网| 久久久久久日产精品| 日本亚洲电影天堂| 在线观看亚洲精品| 综合久久国产九一剧情麻豆| 精品一区二区三区视频| 欧美疯狂做受xxxx富婆| 洋洋成人永久网站入口| 丁香六月久久综合狠狠色| 精品久久久久香蕉网| 日韩av一区二区在线影视| 在线看国产日韩| 亚洲欧美日本在线| aaa亚洲精品一二三区| 国产亚洲成av人在线观看导航 | 99久久久精品免费观看国产蜜| 日韩欧美色综合| 日本欧美在线观看| 欧美精品九九99久久| 亚洲国产日韩精品| 欧美三级一区二区| 午夜精品久久久久影视| 色妞www精品视频| 伊人色综合久久天天| 91小视频在线免费看| 一区在线播放视频| 色综合色狠狠综合色| 亚洲日本va在线观看| 91首页免费视频| 亚洲精品国产精品乱码不99 | 裸体歌舞表演一区二区| 日韩欧美三级在线| 久久精品国产色蜜蜜麻豆| 欧美r级电影在线观看| 国产美女一区二区| 国产日韩欧美一区二区三区综合| 国产精品一二二区| 国产精品全国免费观看高清| 成人免费黄色在线| 一区二区三区视频在线观看| 欧美日韩国产成人在线免费| 美腿丝袜在线亚洲一区| 欧美mv日韩mv亚洲| 国产ts人妖一区二区| 亚洲视频在线观看一区| 欧美日韩中字一区| 久久电影网电视剧免费观看| 国产欧美日韩视频一区二区| 99久久精品国产网站| 亚洲主播在线观看| 欧美一级在线视频| 粉嫩久久99精品久久久久久夜| 亚洲日穴在线视频| 欧美精品一二三四| 国产剧情一区二区三区| 亚洲日本青草视频在线怡红院| 在线观看www91| 老司机精品视频线观看86| 欧美国产综合一区二区| 欧美性淫爽ww久久久久无| 精品在线你懂的| 亚洲精品精品亚洲| 日韩美女天天操| 91丨porny丨在线| 久久超级碰视频| 一区二区三区产品免费精品久久75| 91精品国产一区二区| 成人免费av资源| 奇米亚洲午夜久久精品| 一区在线观看视频| 91精品国产综合久久精品图片 | 99精品欧美一区| 美女一区二区在线观看| 亚洲天堂精品视频| 久久久三级国产网站| 欧美色视频在线观看| 东方aⅴ免费观看久久av| 日本伊人色综合网| 亚洲激情五月婷婷| 中文字幕av在线一区二区三区| 欧美日本一区二区| 色哟哟一区二区三区| 国产东北露脸精品视频| 图片区小说区区亚洲影院| 国产精品久久久久婷婷二区次| 日韩欧美黄色影院| 欧美日韩国产天堂| 一本到不卡免费一区二区| 高清不卡一二三区| 九九视频精品免费| 免费成人在线观看| 午夜精品123| 亚洲在线一区二区三区| 中文字幕一区二区三中文字幕| 精品久久久久香蕉网| 日韩视频免费直播| 在线不卡欧美精品一区二区三区| 91蝌蚪porny成人天涯| 成人性生交大片免费看中文| 精品一区二区综合| 精品一区中文字幕| 久久不见久久见免费视频7| 日本中文字幕一区| 美女久久久精品| 蜜桃av一区二区三区| 美女被吸乳得到大胸91| 免费在线看一区| 捆绑紧缚一区二区三区视频| 日本不卡中文字幕| 蜜臀av亚洲一区中文字幕| 日韩精品亚洲一区二区三区免费| 亚洲午夜久久久| 亚洲午夜视频在线观看| 亚洲电影一区二区| 日韩精品一二三区| 蜜臀av一区二区在线观看| 美国毛片一区二区| 国产伦精品一区二区三区视频青涩 | 亚洲一区二区三区视频在线播放 | 91丨九色porny丨蝌蚪| 色综合激情久久| 欧美性受xxxx黑人xyx性爽| 欧美日韩一区二区三区在线| 51精品视频一区二区三区| 日韩欧美亚洲国产另类| 久久九九久精品国产免费直播| 欧美激情中文字幕| 一区二区三区成人| 热久久久久久久| 成人小视频免费在线观看| 色综合一个色综合亚洲| 欧美色视频一区| 久久久久久久久伊人| 综合精品久久久| 首页欧美精品中文字幕| 狠狠色狠狠色综合系列| 成人高清免费观看| 欧美日韩视频在线第一区| 日韩精品一区二区三区四区视频| 欧美经典三级视频一区二区三区| 亚洲美腿欧美偷拍| 免费看欧美女人艹b| proumb性欧美在线观看| 5566中文字幕一区二区电影| 中文字幕av资源一区| 天天综合天天综合色| 国产精品主播直播| 欧美三级电影在线看| 国产婷婷精品av在线| 偷偷要91色婷婷| 99亚偷拍自图区亚洲| 日韩一级高清毛片| 亚洲色图视频网| 国产一区二区不卡| 欧美日韩精品综合在线| 亚洲国产精华液网站w| 日本成人在线一区| 色婷婷综合久久久久中文一区二区| 欧美不卡在线视频| 一区二区高清视频在线观看| 国产在线一区观看| 欧美色综合网站| 中文字幕在线播放不卡一区| 国产一区二区在线观看免费| 欧美日韩激情一区二区三区| 亚洲色图另类专区| 大陆成人av片| 久久久久久久久97黄色工厂| 婷婷一区二区三区| 色综合网色综合| 国产女主播一区| 激情综合色综合久久| 91精品综合久久久久久| 一卡二卡三卡日韩欧美| 丁香天五香天堂综合| 久久精子c满五个校花| 精品一区二区三区久久| 欧美电影一区二区三区| 亚洲精品videosex极品| 99久久久国产精品| 欧美韩国日本不卡| 国产另类ts人妖一区二区| 欧美v亚洲v综合ⅴ国产v| 日本不卡视频在线| 欧美一卡二卡三卡| 蜜乳av一区二区| 日韩女优制服丝袜电影| 麻豆精品视频在线观看免费| 欧美一区二区三区在线视频| 日韩综合小视频| 欧美一区二区三区免费在线看 |