SHA256算法

发布时间 2023-08-16 17:43:10作者: lucken
在Delphi xe中可以直接使用 TIdHashSHA256 来实现SHA256算法,代码如下

uses IdHashSHA, IdSSLOpenSSLHeaders;  
 
var SHA256 : TIdHashSHA256;  
 
SHA256 := TIdHashSHA256.Create;  
Password_p := LowerCase(SHA256.HashStringAsHex(Password_p));  //默认得出的字符串是大写的,这里转换成小写了  
SHA256.Free;  
 
initialization  
IdSSLOpenSSLHeaders.Load(); // TIdHashSHA256 使用,否则会报内存错误  

说明,这里一定要看,否则调用时会出现内存错误
1、initialization 中要调用 IdSSLOpenSSLHeaders.Load() 来初始化SSL库。
2、程序运行目录下,要包含 libeay32.dll 和 ssleay32.dll两个文件,这两个文件也是SSL库使用的。
3、如果上面两个步骤都有了,还是出现内存错误,可以检查一下 IdSSLOpenSSLHeaders.Load() 的返回值,如果返回失败,表示SSL库没有初始化成功,可能是两个动态库的版本不对应。
4、在Win 10下,需要将文件复制到Program file目录下,否则会出现 IdSSLOpenSSLHeaders.Load()调用失败,使用时出现内存错误。