📄
字号:
<TR>
<TD bgColor=#ffffff
height=25> 摘要:经典加密算法在VB中的实现(2)-MD5</TD></TR>
<TR>
<TD bgColor=#d6d6d6 height=1></TD></TR></TBODY></TABLE>
<TABLE class=border2 cellSpacing=0 cellPadding=0 width=760 align=center
bgColor=#ffffff border=0>
<TBODY>
<TR>
<TD align=middle height=25>
<TABLE width="95%">
<TBODY>
<TR>
<TD align=middle colSpan=9>
<SCRIPT language=JavaScript
src="经典加密算法在VB中的实现(2)-MD5_files/headad.js"></SCRIPT>
</TD></TR>
<TR>
<TD bgColor=#d6d6d6 height=1></TD></TR>
<TR>
<TD>
<TABLE align=left border=0>
<TBODY>
<TR>
<TD><IFRAME border=0 marginWidth=1 frameSpacing=0
marginHeight=1 src="经典加密算法在VB中的实现(2)-MD5_files/ad.htm"
frameBorder=0 noResize width=336 scrolling=no
height=280></IFRAME></TD></TR></TBODY></TABLE>
<P> </P>Option Explicit <BR><BR>Dim w1 As String, w2 As String,
w3 As String, w4 As String <BR><BR>Function MD5F(ByVal tempstr As
String, ByVal w As String, ByVal X As S <BR>tring, ByVal y As
String, ByVal z As String, ByVal Xin As String, ByVa <BR>l qdata As
String, ByVal rots As Integer) <BR> MD5F =
BigMod32Add(RotLeft(BigMod32Add(BigMod32Add(w, tempstr), Bi
<BR>gMod32Add(Xin, qdata)), rots), X) <BR>End Function <BR><BR>Sub
MD5F1(w As String, ByVal X As String, ByVal y As String, ByVal z A
<BR>s String, ByVal Xin As String, ByVal qdata As String, ByVal rots
As In <BR>teger) <BR>Dim tempstr As String
<BR><BR> tempstr = BigXOR(z, BigAND(X, BigXOR(y,
z))) <BR> w = MD5F(tempstr, w, X, y, z, Xin,
qdata, rots) <BR>End Sub <BR><BR>Sub MD5F2(w As String, ByVal X As
String, ByVal y As String, ByVal z A <BR>s String, ByVal Xin As
String, ByVal qdata As String, ByVal rots As In <BR>teger) <BR>Dim
tempstr As String <BR><BR> tempstr = BigXOR(y,
BigAND(z, BigXOR(X, y))) <BR> w = MD5F(tempstr, w,
X, y, z, Xin, qdata, rots) <BR>End Sub <BR><BR>Sub MD5F3(w As
String, ByVal X As String, ByVal y As String, ByVal z A <BR>s
String, ByVal Xin As String, ByVal qdata As String, ByVal rots As In
<BR>teger) <BR>Dim tempstr As String <BR><BR>
tempstr = BigXOR(X, BigXOR(y, z)) <BR> w =
MD5F(tempstr, w, X, y, z, Xin, qdata, rots) <BR>End Sub <BR><BR>Sub
MD5F4(w As String, ByVal X As String, ByVal y As String, ByVal z A
<BR>s String, ByVal Xin As String, ByVal qdata As String, ByVal rots
As In <BR>teger) <BR>Dim tempstr As String
<BR><BR> tempstr = BigXOR(y, BigOR(X, BigNOT(z)))
<BR> w = MD5F(tempstr, w, X, y, z, Xin, qdata,
rots) <BR>End Sub <BR><BR>Function MD5_Calc(ByVal hashthis As
String) As String <BR>ReDim buf(0 To 3) As String <BR>ReDim Xin(0 To
15) As String <BR>Dim tempnum As Integer, tempnum2 As Integer,
loopit As Integer, loopou <BR>ter As Integer, loopinner As Integer
<BR>Dim a As String, b As String, c As String, d As String
<BR><BR> ' Add padding <BR><BR>
tempnum = 8 * Len(hashthis) <BR> hashthis =
hashthis + Chr$(128) 'Add binary 10000000 <BR>
tempnum2 = 56 - Len(hashthis) Mod 64 <BR><BR> If
tempnum2 < 0 Then <BR>
tempnum2 = 64 + tempnum2 <BR> End If
<BR><BR> hashthis = hashthis + String$(tempnum2,
Chr$(0)) <BR><BR> For loopit = 1 To 8
<BR> hashthis = hashthis +
Chr$(tempnum Mod 256) <BR>
tempnum = tempnum - tempnum Mod 256
<BR> tempnum = tempnum /
256 <BR> Next loopit
<BR><BR> <BR><BR> ' Set
magic numbers <BR> buf(0) = "67452301"
<BR> buf(1) = "efcdab89" <BR>
buf(2) = "98badcfe" <BR> buf(3) = "10325476"
<BR><BR> <BR><BR> ' For
each 512 bit section <BR> For loopouter = 0 To
Len(hashthis) / 64 - 1
<BR> a = buf(0)
<BR> b = buf(1)
<BR> c = buf(2)
<BR> d = buf(3)
<BR><BR> ' Get the 512
bits <BR> For loopit = 0
To 15
<BR>
Xin(loopit) = ""
<BR>
For loopinner = 1 To 4
<BR>
Xin(loopit) = Hex$(Asc(Mid$(hashthis, 64 * loopouter + <BR>4 *
loopit + loopinner, 1))) + Xin(loopit)
<BR>
If Len(Xin(loopit)) Mod 2 Then Xin(loopit) = "0" + Xin <BR>(loopit)
<BR>
Next loopinner <BR> Next
loopit <BR><BR> ' Round 1
<BR> MD5F1 a, b, c, d,
Xin(0), "d76aa478", 7 <BR>
MD5F1 d, a, b, c, Xin(1), "e8c7b756", 12
<BR> MD5F1 c, d, a, b,
Xin(2), "242070db", 17
<BR> MD5F1 b, c, d, a,
Xin(3), "c1bdceee", 22
<BR> MD5F1 a, b, c, d,
Xin(4), "f57c0faf", 7 <BR>
MD5F1 d, a, b, c, Xin(5), "4787c62a", 12
<BR> MD5F1 c, d, a, b,
Xin(6), "a8304613", 17
<BR> MD5F1 b, c, d, a,
Xin(7), "fd469501", 22
<BR> MD5F1 a, b, c, d,
Xin(8), "698098d8", 7 <BR>
MD5F1 d, a, b, c, Xin(9), "8b44f7af", 12
<BR> MD5F1 c, d, a, b,
Xin(10), "ffff5bb1", 17
<BR> MD5F1 b, c, d, a,
Xin(11), "895cd7be", 22
<BR> MD5F1 a, b, c, d,
Xin(12), "6b901122", 7
<BR> MD5F1 d, a, b, c,
Xin(13), "fd987193", 12
<BR> MD5F1 c, d, a, b,
Xin(14), "a679438e", 17
<BR> MD5F1 b, c, d, a,
Xin(15), "49b40821", 22
<BR><BR> ' Round 2
<BR> MD5F2 a, b, c, d,
Xin(1), "f61e2562", 5 <BR>
MD5F2 d, a, b, c, Xin(6), "c040b340", 9
<BR> MD5F2 c, d, a, b,
Xin(11), "265e5a51", 14
<BR> MD5F2 b, c, d, a,
Xin(0), "e9b6c7aa", 20
<BR> MD5F2 a, b, c, d,
Xin(5), "d62f105d", 5 <BR>
MD5F2 d, a, b, c, Xin(10), "02441453", 9
<BR> MD5F2 c, d, a, b,
Xin(15), "d8a1e681", 14
<BR> MD5F2 b, c, d, a,
Xin(4), "e7d3fbc8", 20
<BR> MD5F2 a, b, c, d,
Xin(9), "21e1cde6", 5 <BR>
MD5F2 d, a, b, c, Xin(14), "c33707d6", 9
<BR> MD5F2 c, d, a, b,
Xin(3), "f4d50d87", 14
<BR> MD5F2 b, c, d, a,
Xin(8), "455a14ed", 20
<BR> MD5F2 a, b, c, d,
Xin(13), "a9e3e905", 5
<BR> MD5F2 d, a, b, c,
Xin(2), "fcefa3f8", 9 <BR>
MD5F2 c, d, a, b, Xin(7), "676f02d9", 14
<BR> MD5F2 b, c, d, a,
Xin(12), "8d2a4c8a", 20
<BR><BR> ' Round 3
<BR> MD5F3 a, b, c, d,
Xin(5), "fffa3942", 4 <BR>
MD5F3 d, a, b, c, Xin(8), "8771f681", 11
<BR> MD5F3 c, d, a, b,
Xin(11), "6d9d6122", 16
<BR> MD5F3 b, c, d, a,
Xin(14), "fde5380c", 23
<BR> MD5F3 a, b, c, d,
Xin(1), "a4beea44", 4 <BR>
MD5F3 d, a, b, c, Xin(4), "4bdecfa9", 11
<BR> MD5F3 c, d, a, b,
Xin(7), "f6bb4b60", 16
<BR> MD5F3 b, c, d, a,
Xin(10), "bebfbc70", 23
<BR> MD5F3 a, b, c, d,
Xin(13), "289b7ec6", 4
<BR> MD5F3 d, a, b, c,
Xin(0), "e27fa", 11 <BR>
MD5F3 c, d, a, b, Xin(3), "d4ef3085", 16
<BR> MD5F3 b, c, d, a,
Xin(6), "04881d05", 23
<BR> MD5F3 a, b, c, d,
Xin(9), "d9d4d039", 4 <BR>
MD5F3 d, a, b, c, Xin(12), "e6db99e5", 11
<BR> MD5F3 c, d, a, b,
Xin(15), "1fa27cf8", 16
<BR> MD5F3 b, c, d, a,
Xin(2), "c4ac5665", 23
<BR><BR> ' Round 4
<BR> MD5F4 a, b, c, d,
Xin(0), "f4292244", 6 <BR>
MD5F4 d, a, b, c, Xin(7), "432aff97", 10
<BR> MD5F4 c, d, a, b,
Xin(14), "ab9423a7", 15
<BR> MD5F4 b, c, d, a,
Xin(5), "fc93a039", 21
<BR> MD5F4 a, b, c, d,
Xin(12), "655b59c3", 6
<BR> MD5F4 d, a, b, c,
Xin(3), "8f0ccc92", 10
<BR> MD5F4 c, d, a, b,
Xin(10), "ffeff47d", 15
<BR> MD5F4 b, c, d, a,
Xin(1), "85845dd1", 21
<BR> MD5F4 a, b, c, d,
Xin(8), "6fa87e4f", 6 <BR>
MD5F4 d, a, b, c, Xin(15), "fe2ce6e0", 10
<BR> MD5F4 c, d, a, b,
Xin(6), "a3014314", 15
<BR> MD5F4 b, c, d, a,
Xin(13), "4e0811a1", 21
<BR> MD5F4 a, b, c, d,
Xin(4), "f7537e82", 6 <BR>
MD5F4 d, a, b, c, Xin(11), "bd3af235", 10
<BR> MD5F4 c, d, a, b,
Xin(2), "2ad7d2bb", 15
<BR> MD5F4 b, c, d, a,
Xin(9), "eb86d391", 21
<BR><BR> buf(0) =
BigAdd(buf(0), a) <BR>
buf(1) = BigAdd(buf(1), b)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -