导航:首页 > 源码编译 > delphi算法大全

delphi算法大全

发布时间:2023-02-26 09:17:30

⑴ 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('$' + (Source, 1, 2));
SrcPos := 3;
repeat
SrcAsc := strtoint('$' + (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;

⑵ Delphi常用的字符串(密码)加密方式都有哪几种哪种方法可以将数字字母混合加密成纯数字

多了,des、aes、base64、rsa、md5、sha等等,等等,数不胜数。每一种算法,都可以将数字字母加密成纯数字。因为加密的结果可以再加密。比如aes加密后的密文,是16进制的东西,我们可以把这个结果转换成10进制,不就成了纯数字了吗?所以,所有算法,都可以实现你所说的。

⑶ delphi分组算法

MD5即Message-Digest Algorithm 5(信息-摘要算法 5),是在计算机语言当中普遍使用的一种杂凑程序,由于它类似于函数,我们称为算法。此杂凑函数是由MD2、MD3和MD4完善而来。其基本原理就是将一个字符串(包括汉字等)通过一定的函数转换为一种新的字符串,并且这种杂凑运算是以不可逆转的形式存在。在1992年8月Ronald L. Rivest在向IEFT提交了一份重要文件,描述了这种算法的原理,由于这种算法的公开性和安全性,在90年代被广泛使用在各种程序语言中,用以确保资料传递无误等。

由于MD5算法的可靠性,被广泛用于杂凑资料正确性验证。经过许多程序员的努力,MD5算法已经被各种语言实现,.asp,.php,.java ,c,c#,vb,vc++,delphi等语言。

MD5算法以16个32位子分组即512位分组来提供数据杂凑,经过程序流程,生成四个32位数据,最后联合起来成为一个128位散列。基本方式为,求余、取余、调整长度、与链接变量进行循环运算。得出结果。

MD5由MD4、MD3、MD2改进而来,主要是增加了算法难度和不可逆性。

虽然目前对MD5算法本身还没有已知或已公布的攻击方法,但是由于它是一种比较老的算法,使用MD5计算出的的散列值长度只有128位,随着现代计算机运算能力的提高,通过一些方式,寻找一个可能的“碰撞”(冲突)已经变得可能。因此,MD5在一些对安全要求比较高的场合已经逐步被其它的算法所替代。

由于MD5使用的广泛性和可靠性,诸多程序员对其进行了大量的研究,并取得了一些成果,但是并未改变MD5算法的可逆性,没有完整的反MD5函数出现。

阅读全文

与delphi算法大全相关的资料

热点内容
库房管理系统源码 浏览:59
安卓应用多为什么会卡 浏览:10
php程序员工作职责 浏览:306
程序员可以转行做运维吗 浏览:323
如何检测到服务器端口是否通 浏览:851
linuxsed正则 浏览:109
linux安装gz文件 浏览:357
linux如何卸载编译的软件 浏览:929
高三解压活动视频 浏览:780
如何把服务器卡爆 浏览:949
饿了么java程序员 浏览:960
python编译时找不到路径 浏览:910
jpg转换pdf软件 浏览:103
php读取json文件 浏览:866
螺杆压缩机的功率计算 浏览:74
谷轮压缩机c 浏览:338
苹果app如何复制到另一个手机 浏览:834
javasession超时 浏览:831
易金通app怎么更改手机号 浏览:493
plc数控编程的方法 浏览:989