delphi 2009 2010 xe 如何使用md5

liyuxin88 2011-07-05 01:04:10
delphi 2009 2010 xe 如何使用md5 要详细点 中文也不会出错的
...全文
247 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liyuxin88 2011-07-06
  • 打赏
  • 举报
回复
已经解决了 上面没有一人 回答正确 还是结贴 散分 谢谢各位
liyuxin88 2011-07-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 rouqing 的回复:]

Delphi(Pascal) code
procedure TForm1.BitBtn1Click(Sender: TObject);
var
MyMD5: TIdHashMessageDigest5;
Digest: T4x4LongWordRecord;
begin
MyMD5 := TIdHashMessageDigest5.Create;
Digest := MyMD……
[/Quote]
我用的就是这种方法 结果中文出来 失败 和 php 出来的结果不一样
纯冰糖 2011-07-05
  • 打赏
  • 举报
回复
procedure TForm1.BitBtn1Click(Sender: TObject);
var
MyMD5: TIdHashMessageDigest5;
Digest: T4x4LongWordRecord;
begin
MyMD5 := TIdHashMessageDigest5.Create;
Digest := MyMD5.HashValue('你好Hello');
Memo1.Lines.Add('32: ' + MyMD5.AsHex(Digest));
Memo1.Lines.Add('16: ' + Copy(MyMD5.AsHex(Digest), 9, 16));
MyMD5.Free;
end;
纯冰糖 2011-07-05
  • 打赏
  • 举报
回复
写个简单例子:D7的

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,IdHashMessageDigest,IdGlobal, IdHash, StdCtrls, Buttons;

type
TForm1 = class(TForm)
Memo1: TMemo;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
var
MyMD5: TIdHashMessageDigest5;
Digest: T4x4LongWordRecord;
begin
MyMD5 := TIdHashMessageDigest5.Create;
Digest := MyMD5.HashValue('');
Memo1.Lines.Add('32: ' + MyMD5.AsHex(Digest));
Memo1.Lines.Add('16: ' + Copy(MyMD5.AsHex(Digest), 9, 16));
MyMD5.Free;
end;

end.
lwm08106542000 2011-07-05
  • 打赏
  • 举报
回复
网上去找个MD5函数吧,很多很多
indy的 MD5我没用,不过 indy的网络控件,在客户端用还可以。
bzworinima 2011-07-05
  • 打赏
  • 举报
回复
具体什么问题呢?

uses
IdHashMessageDigest,IdHash;

var
md5: TIdHashMessageDigest5;
begin
//对分包进行MD5校验
md5 := TIdHashMessageDigest5.Create;
md5value := md5.HashBytesAsHex(imageByte);
md5.Free;
if copy(md5value,9,16) = myImageParam.md5value then
begin
setlength(myImageParam.image,imagelen);
CopyMemory(@myImageParam.image[0],@imageByte[0],imagelen);
end;

默认是32 位字符串
16位字符串是 9-25 中间的部分
lwm08106542000 2011-07-05
  • 打赏
  • 举报
回复
md5 与中文有关系吗?
md5可以对任何长度的文本,二进制数据进行数字签名
liyuxin88 2011-07-05
  • 打赏
  • 举报
回复
问题没有解决
亮剑_ 2011-07-05
  • 打赏
  • 举报
回复

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧