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

MD5 与 SHA 在 Delphi 中函数实现。

为了加密密码,必须使用一种算法,查询资料,比较好的方法是使用:MD5等算法,参考:Delphi XE8 支持MD5

第一种方式是:引用 System.Hash 中的 THashMD5, (或者 THashSHA1,THashSHA2) 参考 官方文档。

http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.Hash

简单用法:  hashmd5 := THashMD5.Create.GetHashString(‘abc‘);         ‘abc’ 是你想加密的字符串,你提供。

使用它计算的结果中,字符是小写。MD5 ("abc") =   900150983cd24fb0d6963f7d28e17f72

        另一种加密是:    hashsha1 := THashSHA1.Create.GetHashString(‘abc‘);

第二种方式是:使用  IdHashMessageDigest  ,产生的加密字符是:大写格式

比如:加密 ‘abc ’   MD5 ("abc") = 900150983CD24FB0D6963F7D28E17F72 

在单元中,引入Uses  IdHashMessageDigest,(也可以包括:,IdHash,IdGlobal, 不知道原因 !)

代码如下:

Uses  IdHashMessageDigest;

function MD5Encode(const str:string):String;     //定义一个公开函数

function MD5Encode(const str:string):String;
var
    //引用 IdHashMessageDigest,IdHash,IdGlobal 空间
    AMD5Encode:TIdHashMessageDigest5;
begin
    AMD5Encode:=TIdHashMessageDigest5.Create;            //创建实例

try
        Result  :=  AMD5Encode.HashStringAsHex(str);      //这是实现!

finally
        AMD5Encode.Free;
    end;
end;

原文地址:https://www.cnblogs.com/hopesun/p/9656814.html

时间: 2024-10-10 07:09:53

MD5 与 SHA 在 Delphi 中函数实现,加密密码的相关文章

Delphi 中 函数参数中的 const 修饰符的本质以及注意事项

来自:http://blog.csdn.net/farrellcn/article/details/9096787 ------------------------------------------------------------------------------ 很多书籍中说函数参数如果是String类型的,如果在函数内部不改变参数的值,使用 const 修饰符会加快程序的执行速度,至于如何加快的?有的人说是因为 const 函数保证了参数字符串不会被复制.以前也没有对这个问题深入研究

Delphi中函数定义和声明的位置

当函数(或过程)A定义在函数(或过程)B之前,那么函数B就可以调用函数A,并且编译成功,例如下面的 procedure TForm1.btn1Click(Sender: TObject); 和   function showstr: string; unit Test; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type

常用加密算法的Java实现(一)——单向加密算法MD5和SHA

1.Java的安全体系架构 1.1           Java的安全体系架构介绍 Java中为安全框架提供类和接口.JDK 安全 API 是 Java 编程语言的核心 API,位于 java.security包(及其子包),以及sun.securityAPI包(及其子包)中.设计用于帮助开发人员在程序中同时使用低级和高级安全功能. JDK 1.1 中第一次发布的 JDK 安全中引入了“Java 加密体系结构”(JCA),指的是用于访问和开发 Java平台密码功能的构架.在 JDK 1.1 中,

BASE64、MD5、SHA、HMAC几种加密算法

本篇内容简要介绍BASE64.MD5.SHA.HMAC几种加密算法.    BASE64编码算法不算是真正的加密算法.    MD5.SHA.HMAC这三种加密算法,可谓是非可逆加密,就是不可解密的加密方法,我们称之为单向加密算法.我们通常只把他们作为加密的基础.单纯的以上三种的加密并不可靠. BASE64 按照RFC2045的定义,Base64被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式.(The Base64 Content-Transfe

delphi中的Format函数详解

首先看它的声明:[[email protected]][@21ki!] function Format(const Format: string; const Args: array of const): string; overload;[[email protected]][@21ki!] 事实上Format方法有两种形式,另外一种是三个参数的,主要区别在于它是线程安全的,[[email protected]][@21ki!]但并不多用,所以这里只对第一个介绍:[[email protect

delphi中move函数的正确理解(const和var一样,都是传地址,所以Move是传地址,而恰恰不是传值)太精彩了 good

我们能看到以下代码var pSource,pDest:PChar;     len: integer;.......................//一些代码Move(pSource,pDest,len); //错误Move(pSource^,pDest^,len); //正确看起来确实好像是传值,而不是传地址,但是各位别忘了,这不是C,C++,而是DelphiObject Pascal,所以,绝不能从函数调用的方法判断是传值还是串地址!!必须看函数的定义,只有定义才能说明是传值还是传地址,再

delphi中formatFloat代码初探(在qt下实现floatformat的函数)

由于项目需要,需要在qt下实现floatformat的函数.之前写过一个,但是写得不好.决定重新写一个,参考delphi xe2下的实现.把xe2下的相关代码都看了一遍,xe2的代码思路在这里贴出来.xe2下的代码在system.sysutils下,核心函数是InternalFloatToTextFmt.它有汇编的版本跟纯pascal的版本.汇编看不懂,参考的是纯pascal的版本. 整体流程是: 1)解析format格式化字符串 [delphi] view plain copy Result 

Delphi中怎样将字符串按给定字符分隔(类似split函数的功能)

Delphi中怎样将字符串按给定字符分隔(类似split函数的功能) 分类:            Delphi2007-05-16 11:094911人阅读评论(2)收藏举报 delphiintegerstringbutton文本编辑function 今天偶尔要做的Delphi程序,其中涉及到了字符串处理,里面有一个功能类似于VB里的split()函数的功能,于是查了很久才查到些资料,现将这些资料整理一下,方便大家. 首先是一个网友自己编的函数.实现了和split()函数的功能. unit U

Delphi中 StrToIntDef函数的用法

Delphi中 StrToIntDef函数的用法: 比如我要判断一个文本框里输入的字符串能不能转换为integer类型,如果能,则返回转换后的整型数据,如果不能,则返回整数0,那么我就可以用strtointdef这个函数. 写法如下: 假设edit1.text:='1000'; 则strtointdef(edit1.text,0)返回值为1000. 如果edit1.text:='fdafds',则返回值为0. (如果你用strtoint(edit1.text)当edit1.text:='fdad