收藏 (0) +1 (0) +1 (0) +1
收藏成功查看收藏>>

正在阅读:和md5.asp结果一样的Delphi加密代码和md5.asp结果一样的Delphi加密代码

2004-07-23 10:16 出处:CSDN 作者:ScriptBaby 责任编辑:linjixiong

 


    md5_HH(a, b, c, d, x[k + 5], S31, $FFFA3942);
    md5_HH(d, a, b, c, x[k + 8], S32, $8771F681);
    md5_HH(c, d, a, b, x[k + 11], S33, $6D9D6122);
    md5_HH(b, c, d, a, x[k + 14], S34, $FDE5380C);
    md5_HH(a, b, c, d, x[k + 1], S31, $A4BEEA44);
    md5_HH(d, a, b, c, x[k + 4], S32, $4BDECFA9);
    md5_HH(c, d, a, b, x[k + 7], S33, $F6BB4B60);
    md5_HH(b, c, d, a, x[k + 10], S34, $BEBFBC70);
    md5_HH(a, b, c, d, x[k + 13], S31, $289B7EC6);
    md5_HH(d, a, b, c, x[k + 0], S32, $EAA127FA);
    md5_HH(c, d, a, b, x[k + 3], S33, $D4EF3085);
    md5_HH(b, c, d, a, x[k + 6], S34, $4881D05);
    md5_HH(a, b, c, d, x[k + 9], S31, $D9D4D039);
    md5_HH(d, a, b, c, x[k + 12], S32, $E6DB99E5);
    md5_HH(c, d, a, b, x[k + 15], S33, $1FA27CF8);
    md5_HH(b, c, d, a, x[k + 2], S34, $C4AC5665);

    md5_II(a, b, c, d, x[k + 0], S41, $F4292244);
    md5_II(d, a, b, c, x[k + 7], S42, $432AFF97);
    md5_II(c, d, a, b, x[k + 14], S43, $AB9423A7);
    md5_II(b, c, d, a, x[k + 5], S44, $FC93A039);
    md5_II(a, b, c, d, x[k + 12], S41, $655B59C3);
    md5_II(d, a, b, c, x[k + 3], S42, $8F0CCC92);
    md5_II(c, d, a, b, x[k + 10], S43, $FFEFF47D);
    md5_II(b, c, d, a, x[k + 1], S44, $85845DD1);
    md5_II(a, b, c, d, x[k + 8], S41, $6FA87E4F);
    md5_II(d, a, b, c, x[k + 15], S42, $FE2CE6E0);
    md5_II(c, d, a, b, x[k + 6], S43, $A3014314);
    md5_II(b, c, d, a, x[k + 13], S44, $4E0811A1);
    md5_II(a, b, c, d, x[k + 4], S41, $F7537E82);
    md5_II(d, a, b, c, x[k + 11], S42, $BD3AF235);
    md5_II(c, d, a, b, x[k + 2], S43, $2AD7D2BB);
    md5_II(b, c, d, a, x[k + 9], S44, $EB86D391);

    a := a + AA;
    b := b + BB;
    c := c + CC;
    d := d + DD;

  k := k + 16;
  until k > High(x);
 
  if sType then
  begin
    s := WordToHex(a) + WordToHex(b) + WordToHex(c) + WordToHex(d)
  end
  else
  begin
    s := WordToHex(b) + WordToHex(c);
  end;

  Result := StrLower(PAnsiChar(s));
end;

class function sMD5.RotateLeft(const lValue, Bits: longword): longword;
begin
  Result := (lValue shl Bits) Or (lValue shr (32 - Bits));
end;

class function sMD5.WordToHex(const lValue: longword): string;
var
  s: string;
begin
  s := inttohex(lValue, 8);
  Result := s[7]+s[8]+s[5]+s[6]+s[3]+s[4]+s[1]+s[2];
end;

end.

 

也许有些不当之处,请多多指教
 


察看评论详细内容 我要发表评论
作者笔名 简短内容 发表时间
:
键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
手机访问回到顶部