Delphi中的加密算法(MD5,MD4,MD3...)
... Delphi MD5 加密算法
2023-09-27 14:24:59 时间
在Delphi自带的Indy控件中其实是提供了MD2,MD4,MD5对象的,我们可以直接使用它们来完成MD5的签名算法。而不需要再去找其它的DLL或是Pas了。在Uses单元中引用 IdHashMessageDigest 单元,再写如下代码即可以达到MD5的实现。示例代码
procedure TForm1.Button1Click(Sender: TObject);var MyMD5: T
在Delphi自带的Indy控件中其实是提供了MD2,MD4,MD5对象的,我们可以直接使用它们来完成MD5的签名算法。而不需要再去找其它的DLL或是Pas了。
在Uses单元中引用 IdHashMessageDigest 单元,再写如下代码即可以达到MD5的实现。
示例代码 procedure TForm1.Button1Click(Sender: TObject);
var
MyMD5: TIdHashMessageDigest5;
Digest: T4x4LongWordRecord;
begin
MyMD5 := TIdHashMessageDigest5.Create;
Digest := MyMD5.HashValue();
ShowMessage(32: + MyMD5.AsHex(Digest)); //显示32个字符长度的MD5签名结果
ShowMessage(16: + Copy(MyMD5.AsHex(Digest), 9, 16)); //显示16个字符长度的MD5签名结果
end; 说明:
MyMD5.HashValue 函数中可以是一个字符串或是一个流对象,它返回的结果类型为 T4x4LongWordRecord 的MD5签名后结果
MyMD5.AsHex 函数是将T4x4LongWordRecord的Md5签名转换成为十六进制的MD5签名字符串。
为了防止我们的数据泄露,我们往往会对数据进行加密,特别是敏感数据,我们要求的安全性更高。下面将介绍几种常用的加密算法使用。这些算法的加密对象都是基于二进制数据,如果要加密字符串就使用统一编码(如:utf8)进行编码后加密。
相信很多奋斗在运维战线的小伙伴们经常会遇到版本升级之类的问题。笔者之前所在的公司每次进行版本发布的时候都会附带MD5校验哈希值,每次升级之前一般都要核对MD5哈希值的,刚刚开始的时候对Linux并不是非常熟悉,每次下载完升级包之后都会在Windows环境下利用Hash工具校验之后才上传到Linux服务器上进行版本升级操作。
在Delphi自带的Indy控件中其实是提供了MD2,MD4,MD5对象的,我们可以直接使用它们来完成MD5的签名算法。而不需要再去找其它的DLL或是Pas了。
在Uses单元中引用 IdHashMessageDigest 单元,再写如下代码即可以达到MD5的实现。
示例代码 procedure TForm1.Button1Click(Sender: TObject);
var
MyMD5: TIdHashMessageDigest5;
Digest: T4x4LongWordRecord;
begin
MyMD5 := TIdHashMessageDigest5.Create;
Digest := MyMD5.HashValue();
ShowMessage(32: + MyMD5.AsHex(Digest)); //显示32个字符长度的MD5签名结果
ShowMessage(16: + Copy(MyMD5.AsHex(Digest), 9, 16)); //显示16个字符长度的MD5签名结果
end; 说明:
MyMD5.HashValue 函数中可以是一个字符串或是一个流对象,它返回的结果类型为 T4x4LongWordRecord 的MD5签名后结果
MyMD5.AsHex 函数是将T4x4LongWordRecord的Md5签名转换成为十六进制的MD5签名字符串。
为了防止我们的数据泄露,我们往往会对数据进行加密,特别是敏感数据,我们要求的安全性更高。下面将介绍几种常用的加密算法使用。这些算法的加密对象都是基于二进制数据,如果要加密字符串就使用统一编码(如:utf8)进行编码后加密。
相信很多奋斗在运维战线的小伙伴们经常会遇到版本升级之类的问题。笔者之前所在的公司每次进行版本发布的时候都会附带MD5校验哈希值,每次升级之前一般都要核对MD5哈希值的,刚刚开始的时候对Linux并不是非常熟悉,每次下载完升级包之后都会在Windows环境下利用Hash工具校验之后才上传到Linux服务器上进行版本升级操作。
相关文章
- C知识点:指针函数【本质是一个函数,返回值是一个指针;ret *func(args, ...);】、函数指针【本质是一个指针,该指针的地址指向一个函数(指向代码段中函数入口地址的指针);用于回调函数】
- C++:类名::函数名【单独引用某个类中的函数,或者在类外部定义类中的函数void classA::Func(){...}】
- 妙用 Java 8 中的 Function 接口,消灭 if...else(非常新颖的写法)
- 月薪12k+的接口自动化测试,3分钟带你入门...
- 怎么用Python实现接口测试?搞不清楚这几点又是白费功夫...
- 普通2本,去过字节外包,到现在年薪25W+的测试开发,我的2年转行心酸经历...
- 2年功能测试月薪9.5K,100多天自学自动化,跳槽涨薪4k后我的路还很长...
- 95年表示真干不过,部门新来的00后测试员已把我卷崩溃,想离职了...
- java报错 pom.xml第一行报"org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project...
- 未来发展路线确认!数字经济、数字化转型、数据...这次会议很重要
- Rasa对话机器人连载四 第121课:Rasa对话机器人Debugging项目实战之电商零售对话机器人运行流程调试全程演示-4...
- OSPF+LVS ,qugga,vconfig,...感觉这些很有想法啊