zoukankan      html  css  js  c++  java
  • 最简单的计算MD5方法

    原来写过一个计算MD5的程序,是用了一个叫MD5.pas的单元,使用起来还算简单,但还有更简单的办法,安装了indy就会有IdHashMessageDigest单元(delphi 7默认安装indy)
    有篇文章教怎么用IdHashMessageDigest计算字符串md5,计算文件md5却没有说,在这里补充一下,先看计算函数:
    function TIdHashMessageDigest4.HashValue(AStream: TStream): T4x4LongWordRecord;参数类型是一个流就可以返回T4x4LongWordRecord类型的值,使用function TIdHash128.AsHex(const AValue: T4x4LongWordRecord): string;把T4x4LongWordRecord转换为字符串就可以显示出来,到这里就简单了,把一个文件以流的方式读取,使用HashValue就计算出MD5了,流的使用很简单,TFileStream.Create(const FileName: string; Mode: Word);参数FileName就是文件的路径,Mode就是打开方式,使用fmOpenRead以读方式打开,如果要计算大型文件最好使用线程来操作.以下是实例代码:

    在uses添加IdHashMessageDigest
    procedure TForm1.Button1Click(Sender: TObject);
    var
      mymd5:TIdHashMessageDigest5;
    begin
    mymd5:=TIdHashMessageDigest5.Create;
    ShowMessage(mymd5.AsHex(mymd5.HashValue('admin')));//计算字符串admin的MD5
    ShowMessage(Copy(mymd5.AsHex(mymd5.HashValue('admin')),9,16));//获取16位字符串MD5
    ShowMessage(mymd5.AsHex(mymd5.HashValue(TFileStream.Create('e:VRMPVOL_CNsp2.iso',fmOpenRead))));//计算文件MD5
    mymd5.Free;
    end; 

  • 相关阅读:
    scala02
    5.主从复制
    4.mysql锁机制
    3mysql查询截取分析
    2.2mysql 索引优化
    2.1mysql索引优化分析
    1.mysql 架构介绍命令,配置文件,架构,存储引擎,
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
    Glide使用
    网络通信框架Retrofit2
  • 原文地址:https://www.cnblogs.com/FKdelphi/p/4642956.html
Copyright © 2011-2022 走看看