查看: 78|回复: 0

Delphi- 数据加密和解密

[复制链接]

3

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2011-9-9
发表于 2019-11-7 14:56:00 | 显示全部楼层 |阅读模式

Delphi进行数据加密,在数据库方面经常要使用到。从网上转载过来的,以后会经常会用到。

  一、MD5加密算法

  在C#/.Net里提供了MD5加密的类库。在Delphi中没有。只能自己建一个新的单位,将网上别人写的MD5加密函数拿来用。

 View Code

  调用方法:

复制代码
var
    md5: TMD5Digest;      //MD5Unit.pas
    passwordSource:string;
    passwordDestinate:string;
begin
    passwordSource:='testStringForMD5';

    MD5String(passwordSource, @md5);
    passwordDestinate:= LowerCase(MD5DigestToStr(md5));

    ShowMessage(passwordDestinate);
end;

  调用方法二:

uses MD5Unit,IdHashMessageDigest,IdHash;
procedure TForm1.btn1Click(Sender: TObject);
var
  MyMD5: TIdHashMessageDigest5;//IdHashMessageDigest.pas
  Digest: T4x4LongWordRecord; //IdHash.pas
  passwordSource:string;

  passwordDestinate32:string;
  passwordDestinate16:string;
begin
  passwordSource:='testStringForMD5';
  MyMD5 := TIdHashMessageDigest5.Create;

  Digest := MyMD5.HashValue(passwordSource);
  passwordDestinate32:=LowerCase(MyMD5.AsHex(Digest)); //32个字符长度的MD5签名结果
  passwordDestinate16:=Copy(passwordDestinate32, 9, 16);//16个字符长度的MD5签名结果

  ShowMessage('32: ' +passwordDestinate32+#13#10+'16: ' + passwordDestinate16);

  MyMD5.Free;
end;

end.

 

 

  二、DES加密算法

  DES的加密、解密封库单元

 View Code

  调用方法,加密:

复制代码
var
  PlaintextStr:string;
begin
  PlaintextStr:='加密测试!';
  PublicCiphertextStr:=EncryStrHex(PlaintextStr, '11111111');//StandardDES.pas

  showmessage(PublicCiphertextStr);
end;

  调用方法,解密:

var
  PlaintextStr:string;
begin
  PlaintextStr:=DecryStrHex(PublicCiphertextStr, '11111111');//StandardDES.pas
  
  showmessage(PlaintextStr);
end;

 

 

  转截自:http://www.cnblogs.com/edisonfeng/archive/2011/07/22/2054520.html



来源:https://www.cnblogs.com/jackero/p/11812071.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部