Delphi加密算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi加密算法相关的知识,希望对你有一定的参考价值。

求一个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 := 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;
参考技术A 给你写个最简单的:
//加密
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;
当然了,这个安全性比较低,你可以自己改造一下,比如再做比较复杂的计算

对称加密算法AES

参考技术A AES(Advanced Encryption Standard),高级加密标准,对称算法,是下一代的加密算法标准,速度快,安全级别高,在21世纪AES 标准的一个实现是 Rijndael 算法;
AES加密算法是密码学中的高级加密标准,该加密算法采用对称分组密码体制,密钥长度的最少支持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现。这种加密算法是美国联邦政府采用的区块加密标准,这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。
它适用于敏感内容进行加密传输,防止被窃取。

以上是关于Delphi加密算法的主要内容,如果未能解决你的问题,请参考以下文章

DELPHI 中INI文件加密还原的问题

AES 加密算法 跨语言

MD5 与 SHA 在 Delphi 中函数实现,加密密码

如何在Delphi软件中实现对配置文件的加密解密

用Delphi制作文本文档程序,在文本中内容加密,我的思路是把文本内容打成乱码,在点击“解密”变回原来的

SSL常见加密算法