var:
key: string; //加解密关键字
percent1: Double; //加解密转换百分比,与关键字一同构成一个加密解密算法
//移位解密函数
function TfrmCryptograph.DeCode(aCryptograph, aKey: string): string;
var
i,keylen,codelen:integer;
begin
keylen :=Length(akey);
codelen:=Length(aCryptograph);
SetLength(Result, Length(aCryptograph));
for i:=1 to codelen do
begin
Result[i]:=Chr(Ord(aCryptograph[i])-Ord(aKey[(i mod KeyLen)+1]));
end;
end;
//移位加密函数
function TfrmCryptograph.EnCode(aCryptograph, aKey: string): string;
var
i,keylen,codelen:integer;
begin
keylen:=Length(akey);
codelen:=Length(aCryptograph);
SetLength(Result, Length(aCryptograph));
for i:=1 to codelen do
begin
Result[i]:=Chr(Ord(aCryptograph[i])+Ord(aKey[(i mod KeyLen)+1]));
end;
end;
//移位加解密过程
function TfrmCryptograph.GetKey(aKey: string; aPercent: Double): string;
var
i:integer;
begin
SetLength(Result,Length(aKey));
for i:=1 to Length(aKey) do
begin
Result[i]:=Chr(Round(Ord(aKey[i])*aPercent));
end;
end;
//在代码中调用加解密过程
for i := 0 to mmoInput.Lines.Count-1 do
begin
strTemp := mmoInput.Lines.Strings[i];
str := EnCode(strTemp,GetKey(Key,Percent1));
mmoOutput.Lines.Append(str);
//进度百分比的计算
pbEnDecodeProcess.Position := pbEnDecodeProcess.Position + 1;
per := Trunc(pbEnDecodeProcess.Position / pbEnDecodeProcess.Max * 100);
pnlProcess.Caption := IntToStr(per) + '%';
pnlProcess.Repaint;
end;
Ord()其实更容易被理解成是一个类型转换符而非函数,其可以取得字符的ASCII码的值
原理就是通过Ord()将一个字符转为用ord其对应的ASCII码的值。
Chr()是Ord()的逆运算,负责将一个ASCII码值转换为对应的char.
Chr(Ord(aCryptograph[i])+Ord(aKey[(i mod KeyLen)+1]));
循环取key字符串中各个字符值,转换为ASCII码,乘以一个percent得到新的ASCII值,再循环取要加密的明文中一个字符转换为ASCII码,二者相加得到新的ASCII值,转换为字符就是加密后的密文;
解密的过程就是
密文ASCII- (加上的key对应ASCII值) * percent , 再转换为char,就可以解释出明文。
这种加解密原理比较简单,但是可以定义多个key和percent多层加密。同时,由于key和percent的不同组合使得可以定义出自己的密钥,适用于对安全性要求不是很高的加密场合
这种加解密原理较为简单,但是可以有不同的
分享到:
相关推荐
"delphi的3EDS加解密算法"是一个关于使用Delphi编程语言实现3DES(Triple Data Encryption Standard)加密算法的项目。3DES是DES(Data Encryption Standard)的一个扩展版本,为了解决DES的较弱安全性而设计,它...
"RSA加解密及公钥密生成工具"这个文件可能是包含上述功能的Delphi源码文件或者一个简单的GUI应用程序,它提供了一个用户友好的界面,使得用户能够轻松地生成RSA密钥对,并进行加密和解密操作。 通过学习和理解这段...
本压缩包提供的资料是关于如何在Delphi程序中实现DES加密和解密的实例。下面我们将深入探讨DES算法、DFM文件及其密码保护,以及在Delphi中实现加密解密的步骤。 1. **DES算法**:DES是一种块密码,它将64位的数据块...
下面是一个简单的使用AES加密解密的Delphi代码示例: ```delphi uses System.Security.Cryptography, System.Classes; function EncryptString(const Input: string; Key: TBytes): TBytes; var AES: ...
以下是一个简单的Delphi实现: ```delphi uses CryptoLib4PAS.Des, System.Classes, System.SysUtils; function DESEncrypt(const Data, Key: string): string; var DES: TDESCryptoService; begin DES := ...
3. **Delphi实现AES**:在Delphi中,可以使用第三方库如`CryptoLib4Pascal`或`DCPCrypt`来实现AES加解密。这些库提供了API接口,可以直接调用进行加密和解密操作。源码中可能包含自定义的AES类,实现了上述的基本...
总的来说,Cryptography单元是Delphi开发者实现加解密需求的一个便利工具,它简化了对AES、DES和MD5的使用,使开发者能够更专注于业务逻辑,而不是底层加密算法的实现。对于任何涉及数据安全的Delphi项目,这个单元...
本例直接利用Indy的封装类及OpenSSL的DLL,并用Delphi来实现RAS的密钥对生成、加解密等过程,最大程度地简化了这个复杂的过程,让程序员能够把精力放在业务问题的解决上,减少在这方面探索时所耗费的精力和时间。...
本方案主要探讨了如何实现Java、C#和Delphi这三种不同编程语言之间的AES加解密兼容性,确保在不同平台和环境中数据的互操作性。 AES-128-ECB是一种常见的AES加密模式,它使用128位的密钥,并且在加密过程中不考虑...
本项目涉及的是一个用Delphi编程语言编写的加解密程序,它提供了简单的字符串加密和解密功能。Delphi是一种基于Object Pascal的集成开发环境(IDE),常用于快速开发Windows桌面应用程序。 首先,我们来看看`...
本文将深入探讨Delphi中的异或(XOR)加密解密实例,以及如何在Delphi 7.0环境下实现这一功能。 异或加密是一种简单的对称加密方法,它基于异或运算的性质:相同的比特进行异或运算结果为0,不同的比特进行异或运算...
这个名为"简单的Delphi字符加密解密.rar"的压缩包文件显然包含了关于如何在Delphi编程环境中实现一个自定义加密算法的源代码。Delphi是一种流行的面向对象的编程语言,常用于开发桌面应用程序,其强大的性能和丰富的...
但是没有提供Delphi使用的RSA支持,delphi开发者使用起来还是有些麻烦,特别是RSA加解密及签名验证等等,因此我们开发了这个RSA控件,秩序简单的几个API就可以立即实现RSA的加解密及签名验证等功能。
### Delphi文档加解密知识点解析 #### 一、引言 随着计算机网络技术的飞速发展,信息安全问题变得越来越重要。文档加密与解密作为保障信息安全的一种有效手段,在日常生活中有着广泛的应用。本文将详细介绍如何使用...
总的来说,这个示例展示了在Delphi中如何结合MD5和密钥实现简单的字符串加密解密,虽然这种方法可能不是最安全的选择,但仍然能提供基础的数据保护。对于深入学习和实践,可以进一步研究和探索更先进的加密技术和...
本文将深入探讨如何在Delphi 7环境中实现AES(Advanced Encryption Standard)加密解密,并且确保其与Java平台之间的兼容性。AES是一种广泛采用的块密码标准,提供128位的数据块加密,支持128、192和256位的密钥长度...
在Delphi中实现DES加密解密,可能涉及到TDes或THashDES等加密组件的使用,这些组件通常会封装DES的加密和解密过程,为开发者提供简单易用的接口。 Java是另一种流行的编程语言,它具有跨平台的特性。在Java中实现...
本文将深入探讨Delphi中的加密解密函数源码,以及如何利用它们来实现安全的数据处理。 首先,理解加密的基本原理至关重要。加密是将明文(可读数据)转化为密文(不可读数据)的过程,而解密则是将密文还原为明文的...
至于压缩包内的"数据加密程序",这可能是一个使用Delphi编写的示例应用,展示了如何实现上述的加密和解密功能。通过分析和学习这个程序,开发者可以更好地理解Delphi中加密算法的实现细节,包括如何创建和操作替换表...