delphi加密解密.docx

上传人:rrsccc 文档编号:9828310 上传时间:2021-03-29 格式:DOCX 页数:10 大小:15.53KB
返回 下载 相关 举报
delphi加密解密.docx_第1页
第1页 / 共10页
delphi加密解密.docx_第2页
第2页 / 共10页
delphi加密解密.docx_第3页
第3页 / 共10页
delphi加密解密.docx_第4页
第4页 / 共10页
亲,该文档总共10页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《delphi加密解密.docx》由会员分享,可在线阅读,更多相关《delphi加密解密.docx(10页珍藏版)》请在三一文库上搜索。

1、delphi加密解密delphi 字符串加密收集function Encode(Str:String):String;var/加密TmpChr:AnsiChar;i,Len:integer;beginResult:=Str;Len:=Length(Result);TmpChr:=Result1;for i:=1 to Len-1 doResulti:=Resulti+1;ResultLen:=TmpChr;end;function Decode(Str:String):String;var/解密TmpChr:AnsiChar;i,Len:integer;beginResult:=Str;Len

2、:=Length(Result);TmpChr:=ResultLen;for i:=Len DownTo 2 doResulti:=Resulti-1;Result1:=TmpChr;end;/功能:字符串加密和解密作用:可用作密码的和一些重要参数的保存,数据经加密后保存即使被人看到了也无防。首先定义一个常量数组constXorKey:array0.7 of Byte=($B2,$09,$AA,$55,$93,$6D,$84,$47); /字符串加密用然后在程序里加入以下两个函数,具体用法就不用多说了吧!function Enc(Str:String):String;/字符加密函數這是用的一個

3、異或加密vari,j:Integer;beginResult:=;j:=0;for i:=1 to Length(Str) dobeginResult:=Result+IntToHex(Byte(Stri) xor XorKeyj,2);j:=(j+1) mod 8;end;end;function Dec(Str:String):String;/字符解密函數vari,j:Integer;beginResult:=;j:=0;for i:=1 to Length(Str) div 2 dobeginResult:=Result+Char(StrToInt($+Copy(Str,i*2-1,2)

4、 xor XorKeyj);j:=(j+1) mod 8;end;end;function Crypt(s: string; Key: Word;const bEncrypt: boolean): string;constSeedA = 787; / 常量,你可以修改SeedB = 787; / 常量,你可以修改vari: integer;ps, pr : byte;beginif bEncrypt thens := s+#0;SetLength(Result, Length(s);ps := s1;pr := Result1;for i := 1 to length(s) dobeginpr

5、 := ps xor (Key shr 8);if bEncrypt thenKey := (pr + Key) * SeedA + SeedBelseKey := (ps + Key) * SeedA + SeedB;pr := pointer(integer(pr) + 1);ps := pointer(integer(ps) + 1);end;end;/1.function EncrypStr(Src, Key: String): String;/字符串加密函数/对字符串加密(Src:源Key:密匙)var KeyLen :Integer;KeyPos :Integer;offset :

6、Integer;dest :string;SrcPos :Integer;SrcAsc :Integer;Range :Integer;beginKeyLen:=Length(Key);if KeyLen = 0 then key:=delphi;KeyPos:=0;Range:=256;Randomize;offset:=Random(Range);dest:=format(%1.2x,offset);for SrcPos := 1 to Length(Src) dobeginSrcAsc:=(Ord(SrcSrcPos) + offset) MOD 255;if KeyPos then K

7、eyPos:= KeyPos + 1else KeyPos:=1;SrcAsc:= SrcAsc xor Ord(KeyKeyPos);dest:=dest + format(%1.2x,SrcAsc);offset:=SrcAsc;end;Result:=Dest;end;end;function UncrypStr(Src, Key: String): string;/字符串解密函数/对字符串解密(Src:源Key:密匙)var KeyLen :Integer;KeyPos :Integer;offset :Integer;dest :string;SrcPos :Integer;SrcA

8、sc :Integer;TmpSrcAsc :Integer;beginKeyLen:=Length(Key);if KeyLen = 0 then key:=delphi;KeyPos:=0;offset:=StrToInt($+ copy(src,1,2);SrcPos:=3;repeatSrcAsc:=StrToInt($+ copy(src,SrcPos,2);if KeyPos Then KeyPos := KeyPos + 1else KeyPos := 1;TmpSrcAsc := SrcAsc xor Ord(KeyKeyPos);if TmpSrcAsc then TmpSr

9、cAsc := 255 + TmpSrcAsc - offsetelse TmpSrcAsc := TmpSrcAsc - offset;dest:=dest + chr(TmpSrcAsc);offset:=srcAsc;SrcPos:=SrcPos + 2;until SrcPos = Length(Src);Result:=Dest;end;/* *2./*/ 加密解密(利用异或运算) (方式2)/*function encryptstr(const s:string; skey:string):string;/加密vari,j: integer;hexS,hexskey,midS,tm

10、pstr:string;a,b,c:byte;beginhexS :=myStrtoHex(s);hexskey:=myStrtoHex(skey);midS :=hexS;for i:=1 to (length(hexskey) div 2) dobeginif itmpstr:=;for j:=1 to (length(midS) div 2) dobegina:=strtoint($+midS2*j-1+midS2*j);b:=strtoint($+hexskey2*i-1+hexskey2*i);c:=a xor b;tmpstr := tmpstr+myStrtoHex(chr(c)

11、;end;end;result := tmpstr;end;function decryptstr(const s:string; skey:string):string;/解密vari,j: integer;hexS,hexskey,midS,tmpstr:string;a,b,c:byte;beginhexS :=s;/应该是该字符串if length(hexS) mod 2=1 thenbeginshowmessage(密文错误!);exit;end;hexskey:=myStrtoHex(skey);tmpstr :=hexS;midS :=hexS;for i:=(length(hexskey) div 2) downto 1 dobeginif itmpstr:=;for j:=1 to (length(midS) div 2) dobegina:=strtoint($+midS2*j-1+midS2*j);b:=strtoint($+hexskey2*i-1+hexskey2*i);c:=a xor b;tmpstr := tmpstr+myStrtoHex(chr(c);end;end;result := myHextoStr(tmpstr); end;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1