Xin(4), "f7537e82", 6 MD5F4 d, a, b, c, Xin(11), "bd3af235", 10 MD5F4 c, d, a, b, Xin(2), "2ad7d2bb", 15 MD5F4 b, c, d, a, Xin(9), "eb86d391", 21
buf(0) = BigAdd(buf(0), a) buf(1) = BigAdd(buf(1), b) buf(2) = BigAdd(buf(2), c) buf(3) = BigAdd(buf(3), d) Next loopouter
'''' Extract MD5Hash hashthis = "" For loopit = 0 To 3 For loopinner = 3 To 0 Step -1 hashthis = hashthis + Chr(Val("&H" + Mid$(buf(loopit), 1 + 2 * loopinner, 2))) Next loopinner Next loopit
'''' And return it MD5_Calc = hashthis End Function
Function BigMod32Add(ByVal value1 As String, ByVal value2 As String) A s String BigMod32Add = Right$(BigAdd(value1, value2), 8) End Function
Public Function BigAdd(ByVal value1 As String, ByVal value2 As String) As String Dim valueans As String Dim loopit As Integer, tempnum As Integer
tempnum = Len(value1) - Len(value2) If tempnum < 0 Then value1 = Space$(Abs(tempnum)) + value1 ElseIf tempnum > 0 Then value2 = Space$(Abs(tempnum)) + value2 End If
tempnum = 0 For loopit = Len(value1) To 1 Step -1 tempnum = tempnum + Val("&H" + Mid$(value1, loopit, 1)) + Val( "&H" + Mid$(value2, loopit, 1)) valueans = Hex$(tempnum Mod 16) + valueans tempnum = Int(tempnum / 16) Next loopit
If tempnum <> 0 Then valueans = Hex$(tempnum) + valueans End If
BigAdd = Right(valueans, 8) End Function
Public Function RotLeft(ByVal value1 As String, ByVal rots As Integer) As String Dim tempstr As String Dim loopit As Integer, loopinner As Integer Dim tempnum As Integer
rots = rots Mod 32 If rots = 0 Then RotLeft = value1 Exit Function End If
value1 = Right$(value1, 8) tempstr = String$(8 - Len(value1), "0") + value1 value1 = ""
'''' Convert to binary For loopit = 1 To 8 tempnum = Val("&H" + Mid$(tempstr, loopit, 1)) For loopinner = 3 To 0 Step -1 If tempnum And 2 ^ loopinner Then value1 = value1 + "1" Else value1 = value1 + "0" End If Next loopinner Next loopit tempstr = Mid$(value1, rots + 1) + Left$(value1, rots)
'''' And convert back to hex value1 = "" For loopit = 0 To 7 tempnum = 0 For loopinner = 0 To 3 If Val(Mid$(tempstr, 4 * loopit + loopinner + 1, 1)) Then
tempnum = tempnum + 2 ^ (3 - loopinner) End If Next loopinner value1 = value1 + Hex$(tempnum) Next loopit
RotLeft = Right(value1, 8) End Function
Function BigAND(ByVal value1 As String, ByVal value2 As String) As Str ing Dim valueans As String Dim loopit As Integer, tempnum As Integer
tempnum = Len(value1) - Len(value2) If tempnum < 0 Then value2 = Mid$(value2, Abs(tempnum) + 1) ElseIf tempnum > 0 Then value1 = Mid$(value1, tempnum + 1) End If
For loopit = 1 To Len(value1) valueans = valueans + Hex$(Val("&H" + Mid$(value1, loopit, 1)) And Val("&H" + Mid$(value2, loopit, 1))) Next loopit
BigAND = valueans End Function
Function BigNOT(ByVal value1 As String) As String Dim valueans As String Dim loopit As Integer
value1 = Right$(value1, 8) value1 = String$(8 - Len(value1), "0") + value1 For loopit = 1 To 8 valueans = valueans + Hex$(15 Xor Val("&H" + Mid$(value1, loop it, 1))) Next loopit
BigNOT = valueans End Function
Function BigOR(ByVal value1 As String, ByVal value2 As String) As Stri ng Dim valueans As String Dim loopit As Integer, tempnum As Integer
tempnum = Len(value1) - Len(value2) If tempnum < 0 Then valueans = Left$(value2, Abs(tempnum)) value2 = Mid$(value2, Abs(tempnum) + 1) ElseIf tempnum > 0 Then valueans = Left$(value1, Abs(tempnum)) value1 = Mid$(value1, tempnum + 1) End If
For loopit = 1 To Len(value1) valueans = valueans + Hex$(Val("&H" + Mid$(value1, loopit, 1)) Or Val("&H" + Mid$(value2, loopit, 1))) Next loopit
BigOR = valueans End Function
Function BigXOR(ByVal value1 As String, ByVal value2 As String) As Str ing Dim valueans As String Dim loopit As Integer, tempnum As Integer
tempnum = Len(value1) - Len(value2) If tempnum < 0 Then valueans = Left$(value2, Abs(tempnum)) value2 = Mid$(value2, Abs(tempnum) + 1) ElseIf tempnum > 0 Then valueans = Left$(value1, Abs(tempnum)) value1 = Mid$(value1, tempnum + 1) End If
For loopit = 1 To Len(value1) valueans = valueans + Hex$(Val("&H" + Mid$(value1, loopit, 1)) Xor Val("&H" + Mid$(value2, loopit, 1))) Next loopit
BigXOR = Right(valueans, 8) End Function
经典加密算法在VB中的实现(3)- RC4
经典加密算法在VB中的实现(4)- DES 经典加密算法在VB中的实现(1)- Base64
上一页 [1] [2] |