Delphi加密算法
function Enc(Str:String):String;//字符加密函数 这是用的一个异或加密
var
i,j:Integer;
begin
Result:='';
j:=0;
for i:=1 to Length(Str) do
begin
Result:=Result+IntToHex(Byte(Str[i]) xor XorKey[j],2);
j:=(j+1) mod 8;
end;
end;
function Dec(Str:String):String;//字符解密函数
var
i,j:Integer;
begin
Result:='';
j:=0;
for i:=1 to Length(Str) div 2 do
begin
Result:=Result+Char(StrToInt('$'+Copy(Str,i*2-1,2)) xor XorKey[j]);
j:=(j+1) mod 8;
end;
end;
最简单的加密解密,哈哈
var
A1: String;
A2: String;
//初始化
A1 := '1234567890';
A2:= 'abcdefghij';
//加密
function GetEnCode(A: String): String;
var
I,J: Integer;
begin
for I:=1 to Length(A) do
begin
J :=StrToInt(A[i])
if J=0 then J := 10;
Result := Result + A2[J]
end
end;
//解密
function GetDeCode(A: String): String;
var
I,J: Integer;
begin
for I:=1 to Length(A) do
begin
J :=Pos(A[i], A2)
Result := Result + A1[J]
end
end;
function EncryptString(Source, Key: string): string;
//对字符串加密(Source:源 Key:密匙)
var
KeyLen: integer;
KeyPos: integer;
Offset: integer;
Dest: string;
SrcPos: integer;
SrcAsc: integer;
Range: integer;
begin
KeyLen := 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(Source) do
begin
SrcAsc := (Ord(Source[SrcPos]) + Offset) mod 255;
if KeyPos < KeyLen then
KeyPos := KeyPos + 1
else
KeyPos := 1;
SrcAsc := SrcAsc xor Ord(Key[KeyPos]);
Dest := Dest + format('%1.2x', [SrcAsc]);
Offset := SrcAsc;
end;
result := Dest;
end;
function UnEncryptString(Source, Key: string): string;
//对字符串解密(Src:源 Key:密匙)
var
KeyLen: integer;
KeyPos: integer;
Offset: integer;
Dest: string;
SrcPos: integer;
SrcAsc: integer;
TmpSrcAsc: integer;
begin
KeyLen := Length(Key);
if KeyLen = 0 then
Key := 'delphi';
KeyPos := 0;
Offset := strtoint('$' + copy(Source, 1, 2));
SrcPos := 3;
repeat
SrcAsc := strtoint('$' + copy(Source, SrcPos, 2));
if KeyPos < KeyLen then
KeyPos := KeyPos + 1
else
KeyPos := 1;
TmpSrcAsc := SrcAsc xor Ord(Key[KeyPos]);
if TmpSrcAsc <= Offset then
TmpSrcAsc := 255 + TmpSrcAsc - Offset
else
TmpSrcAsc := TmpSrcAsc - Offset;
Dest := Dest + chr(TmpSrcAsc);
Offset := SrcAsc;
SrcPos := SrcPos + 2;
until SrcPos >= Length(Source);
result := Dest;
end;
给你写个最简单的:
//加密
function aa(const Value,key:Integer):Integer;
begin
Result:=(Value+key) xor key;
end;
//解密
function bb(const Value,key:Integer):Integer;
begin
Result:=(Value xor key) - Key;
end;
当然了,这个安全性比较低,你可以自己改造一下,比如再做比较复杂的计算
Delphi的MD5加密算法为什么加密中文有问题
md5是基于字节加密的,无论是delphi还是c#之类的,如果字符串编码不同(比如是用utf8、gbk还是unicode),那加密的结果自然都不一样。
mh5算法在delphi中的实现
3、MD5File为加密这个文件。4、MD5Print是将加密后的密文转换成字符串。5、MD5Match是用来比较密文是否一致。加密字符串aaa MD5String('aaa')将加密后的aaa显示出来 MD5Print(MD5String('aaa'))比较两次密文是否一致: MD5Match(MD5String('第一次明文'),MD5String('第二次输入的明文')) *\/MD5加密算法(DELPHI)...
Delphi的MD5算法加密中文不正确,是啥原因?
这种情况与语言用的汉字编码(内码)有关,看是UNICODE还是什么其他编码?windows版本不同用的编码也不同,表面显示的是“中国人”,其实内存中的二进制码不同,算出来的MD5当然不同。
帮我分析一下这段DELPHI 就怎么算法加密的!
\/\/加密函数 String:需要加密的字符串.Key密钥Function EncrypKey (Src:String; Key:String):string;varidx :integer;KeyLen :Integer;KeyPos :Integer;offset :Integer;dest :string;SrcPos :Integer;SrcAsc :Integer;TmpSrcAsc :Integer;Range :Integer;beginKeyLen:=Length(Key);if KeyLen = 0 th...
Delphi加密算法
function EncryptString(Source, Key: string): string;\/\/对字符串加密(Source:源 Key:密匙)var KeyLen: integer;KeyPos: integer;Offset: integer;Dest: string;SrcPos: integer;SrcAsc: integer;Range: integer;begin KeyLen := Length(Key);if KeyLen = 0 then Key := 'delphi';KeyPos :=...
DELPHI 中INI文件加密还原的问题
可以用异或加密算法。用明文的ASCII码值同密钥进行异或运算,得到密文,解密时用密文同密钥在进行异或运算即可得到明文
求下面这些字串的加密算法
这个是自定义的加密方式,我只能给你这种加密算法的实现方法,下面是delphi的源码:var decipher:array[0..9] of Byte=($90,$AF,$A6,$00,$3E,$AB,$77,$4B,$FE,$D1);=== \/\/解密 function explain(Str: String): String;var i,j:Integer;begin Result:='';j:=0;for i:=1 to Len...
2. 用delphi写一个对字串,进行简单的加密解密演算法
加密\/解密一个字符串 { Begin code } program Crypt;uses WinCRT;const C1 = 52845;C2 = 22719;function Encrypt(const S: String; Key: Word): String;var I: byte;begin Result[0] := S[0];for I := 1 to Length(S) do begin Result[I] := char(byte(S[I]) xor (Key shr ...
delphi 怎样安全地保存密码到文件
用MD5加密吧,将正确的密码用MD5加密保存为ini,之后每次调用就将输入的密码用MD5加密然后和INI文件里的比较,一样就可以通过,这种方法我以前用过,而且也很容易,MD5加密是不可逆的,所以完全不用担心会被人破解,自己研究一下,很简单,不会的,再百度HI我,我给你例子……...
delphi实现的DES加密,当输入明文为64位的时候,输出密文为128位。这是...
那是因为你调用的方法是把des加密后的密文的每一位都转成16进制了,16进制不够两位,前面自动补0了。要修改的话,把加密解密方法转16进制的代码注释了就可以了。
芷庆德特: 我用的加密解密 function EncryptString(Source, Key: string): string;//对字符串加密(Source:源 Key:密匙) var KeyLen: integer; KeyPos: integer; Offset: integer; Dest: string; SrcPos: integer; SrcAsc: integer; Range: integer; begin KeyLen := ...
保定市19523553113: delphi 中的 MD5 加密怎么用 - ?
芷庆德特: 1.在Delphi自带的Indy控件中其实是提供了MD2,MD4,MD5对象的,可以直接使用来完成MD5的签名算法.不需要DLL或是Pas. 2.在Uses单元中引用 IdHashMessageDigest,IdGlobal, IdHash 单元,再写如下代码即可以达到MD5的实现.
保定市19523553113: Delphi常用的字符串(密码)加密方式都有哪几种?哪种方法可以将数字字母混合加密成纯数字? - ?
芷庆德特: 多了,des、aes、base64、rsa、md5、sha等等,等等,数不胜数.每一种算法,都可以将数字字母加密成纯数字.因为加密的结果可以再加密.比如aes加密后的密文,是16进制的东西,我们可以把这个结果转换成10进制,不就成了纯数字了吗?所以,所有算法,都可以实现你所说的.
保定市19523553113: delphi 在Delphi中加密一串字符,用什么算法比较好??
芷庆德特: 使用 Windows 中的 API 函数: CryptEncrypt 加密函数 CryptDecrypt 解密函数即可.
保定市19523553113: delphi 有没有什么好的算法能加密字符串?
芷庆德特: function Encrypt(const S: String; Key: Word): String;var I: byte;begin Result S ; for I 1 to Length(S) do begin Result char(byte(S ) xor (Key shr 8)); Key (byte(Result ) + Key) * C1 + C2; end;end;function Decrypt(const S: String; Key: Word): String;var I: ...
保定市19523553113: delphi 中的edit中的字符串怎么加密啊? - ?
芷庆德特: 随便写一种散列算法,比如把edit中每一个字符换成ANSI字符后做+-*/运算后再转回一般字符,变换后的字符列存入数据库,当再次登陆时,把输入的字符按同样的变换算法变换后和数据库中存放的作对比.如果还不明白,来QQ上问
保定市19523553113: delphi 中这4个都是关于加密的MD5String、MD5File、MD5Print、MD5Match,请问解密的算法怎么实现.?
芷庆德特: 原码参照: 1: 2: 从网上找的Delphi MD5加密的原码好像都是一个版本的,也不知道出自哪位高人之手,下面是原码中主要的几个函数的含义.楼主只要用下面的几个函数就ok了,其他的那么多都可以不用关心,当然,想研究下也可以哈. 1、 MD5String、MD5File、MD5Print、MD5Match这四个函数是供调用的.其他是用来辅助这几个函数的子函数. 2、MD5String为加密字符串. 3、MD5File为加密这个文件. 4、MD5Print是将加密后的密文转换
保定市19523553113: 如何在Delphi软件中实现对配置文件的加密解密?
芷庆德特: 直接先加密在放到ini 文件里 要用的时候直接解密出来就可以了 至于用什么加密算法看你自己喜欢 推荐用base64算法不错 网上到处有的下
保定市19523553113: delphi 怎样安全地保存密码到文件 - ?
芷庆德特: 用MD5加密吧,将正确的密码用MD5加密保存为ini,之后每次调用就将输入的密码用MD5加密然后和INI文件里的比较,一样就可以通过,这种方法我以前用过,而且也很容易,MD5加密是不可逆的,所以完全不用担心会被人破解,自己研究一下,很简单,不会的,再百度HI我,我给你例子……
保定市19523553113: 请问delphi做的软件如何加密?
芷庆德特: 一般简单的做法主要是:注册表加密、算法加密、ini文件加密等.