新手,急:MD5的使用问题

sgwindy 2007-01-12 04:06:06
我是新手,在网上找到MD5算法的实现:http://www.jonline.cn/program/Delphi/2006-03-12/WkGvs.html,
请教高人,如何调用这个算法,如何实现加密、解密操作(指调用)?

急!谢谢啦!
...全文
260 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wmycom 2007-07-02
  • 打赏
  • 举报
回复
楼上的朋友,你的那段程序的使用方法怎么用啊?
zuoansuifeng 2007-01-12
  • 打赏
  • 举报
回复
另外的加密解密我给你个函数好了


//加密
function EncrypKey(sSrc:string; sKey: string=''): string;
const
sHex: array[0..15] of Char =
('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
var
iKeyLen, iKeyPos, iOffset, iSrcPos, iSrcAsc: Integer;
function IntToHexStr(iNum: Integer): string;
begin
Result := sHex[iNum div 16] + sHex[iNum mod 16];
end;
begin
try
if sSrc = '' then Exit;
if sKey = '' then sKey :='TonyNetmarchTrackRevision';
iKeyLen := Length(sKey);
iKeyPos := 0;
Randomize;
iOffset := Random(256);
Result := IntToHexStr(iOffset);
for iSrcPos := 1 to Length(sSrc) do
begin
iSrcAsc := (Ord(sSrc[iSrcPos]) + iOffset) mod 255;
if iKeyPos < iKeyLen then
Inc(iKeyPos)
else
iKeyPos := 1;
iSrcAsc := iSrcAsc xor Ord(sKey[iKeyPos]);
Result := Result + IntToHexStr(iSrcAsc);
iOffset := iSrcAsc;
end;
except
end;
end;
//解密
function UncrypKey(sSrc:string; sKey: string=''): string;
var
iKeyLen, iKeyPos, iOffset, iSrcPos, iSrcAsc, iTmpSrcAsc: Integer;
begin
if sSrc = '' then Exit;
if sKey = '' then sKey := 'TonyNetmarchTrackRevision';
iKeyLen := Length(sKey);
iKeyPos := 0;
iOffset := StrToInt('$' + Copy(sSrc, 1, 2));
iSrcPos := 3;
repeat
iSrcAsc := StrToInt('$' + Copy(sSrc, iSrcPos, 2));
if iKeyPos < iKeyLen then
Inc(iKeyPos, 1)
else
iKeyPos := 1;
iTmpSrcAsc := iSrcAsc xor Ord(sKey[iKeyPos]);
if iTmpSrcAsc <= iOffset then
Inc(iTmpSrcAsc, 255 - iOffset)
else
Dec(iTmpSrcAsc, iOffset);
Result := Result + Chr(iTmpSrcAsc);
iOffset := iSrcAsc;
Inc(iSrcPos, 2);
until iSrcPos >= Length(sSrc);
end;
zuoansuifeng 2007-01-12
  • 打赏
  • 举报
回复
MD5? 具体的你看你MD5加密的那单元啦

确实不能解密 ~~
sgwindy 2007-01-12
  • 打赏
  • 举报
回复
我的问题要更改一下:我想取得客户机的硬盘ID后,生成注册码,我的问题是怎么生成注册码。因为不懂MD5,误导各位了!
xthmpro_cn 2007-01-12
  • 打赏
  • 举报
回复
MD5 是不可逆的。不能解密。
sgwindy 2007-01-12
  • 打赏
  • 举报
回复
谢谢你们啦!
或者你们能提供另外的算法加密、解密源码也可以,总之能实现加密、解密操作就可以
yi10000 2007-01-12
  • 打赏
  • 举报
回复
你等下,我找个我自己用过的给你
luxuewei5214 2007-01-12
  • 打赏
  • 举报
回复
在你的程序里Uses他的pas文件,然后直接调用加密函数即可,我找的是function RivestStr(Str: String): string;没有解密函数

16,749

社区成员

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

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