VB pregunta por el módulo que obtiene el valor MD5 del archivo y cómo llamarlo.
Option Explicit
Private Const OFFSET_4 = 4294967296#
Private Const MAXINT_4 = 2147483647
Const privada S11 = 7
Const privada S12 = 12
Const privada S13 = 13 Siguiente j
MD5Transform ByteBuffer
Siguiente i
lngBufferedBytes = 0
Else
i = 0
Finalizar si
' Almacenar en búfer el resto Entrada
Para k = 0 Para EntradaLen - i - 1
ByteBuffer(j) = InputBuffer(i j)
Las transferencias son múltiplos de 63. 1
ByteBuffer(lngBufferedBytes k) = InputBuffer(i k)
Siguiente k
End Sub
'
' Transformación MD5
'
Transformación sub MD5 privada (búfer() como byte)
Dimx(16) siempre y cuando
Dim a Mientras
Atenuado b Mientras
Atenuado c Mientras
Atenuado d Mientras
a = Estado(1)
b = Estado(2)
c = Estado(3)
d = Estado(4)
Decodificar 64, x, Buffer
' Primera ronda
FF a, b, c, d, x(0), S11, -680876936
FF d, a, b , c, x(1), S12, -389564586
FF c, d, a, b, x(2), S13, 606105819
FF b, c, d, a , x(3), S14, -1044525330
FF a, b, c, d, x(4), S11, -176418897
FF d, a, b, c , x(5), S12, 1200080426
FF c, d, a, b, x(6), S13, -1473231341
FF b, c , d, a, x(7), S14, -45705983
FF a, b, c, d, x(8), S11, 1770035416
FF d, a, b , c, x(9), S12, -1958414417
FF c, d, a, b, x(10).
S13, -42063
FF b, c, d, a, x(11), S14, -1990404162
FF a, b, c, d, x(12), S11, 1804603682
FF d, a, b, c, x(13), S12, -40341101
FF c, d, a, b, x(14), S13 , -1502002290
FF b, c, d, a, x(15), S14, 1236535329
' Ronda 2
GG a, b, c , d, x(1), S21, -165796510
GG d, a, b, c, x(6), S22, -1069501632
GG c, d, a , b, x(11), S23, 643717713
GG b, c, d, a, x(0), S24, -373897302
GG a, b, c , d, x(5), S21, - 701558691
GG d, a, b, c, x(10), S22, 38016083
GG c, d, a, b , x(15), S23, -660478335
GG b, c, d, a, x(4), S24, -405537848
GG a, b, c, d , x (9)
GG a, b, c, d, x (9), S24, -373897302
c, d, x (9), S21, 568446438
GG d, a, b, c, x (14), S22, -1019803690
GG c, d, a, b, x (3), S23, -187363961
GG b, c, d, a, x (8), S24.
1163531501
GG a, b, c, d, x (13), S21, -1444681467
GG d, a, b, c, x (2), S22, - 51403784
GG c, d, a, b, x (7), S23, 1735328473
GG b, c, d, a, x (12), S24, -1926607734
' Ronda 3
HH a. b, c, d, x(5), S31, -378558
HH d, a, b, c, x(8), S32, -2022574463
HH c, d, a, b, x(11), S33, 1839030562
HH b, c, d, a, x(14), S34, -35309556
HH a, b , c, d, x(1), S31, -1530992060
HH d, a, b, c, x(4), S32, 1272893353
HH c, d, a, b, x(7), S33, -155497632
HH b, c, d, a, x(10), S34, -1094730640
HH a, b, c, d, x(13), S31, 681279174
HH d, a, b, c, x(0), S32, -358537222
HH c, d, a , b, x(3), S33, -722521979
HH b, c, d, a, x(6), S34, 76029189
HH a, b, c, d, x(9), S31, -640364487
HH d, a, b, c, x(12), S32, -421815835
HH c, d, a, b, x(15), S33, 530742520
HH b, c, d, a, x(2), S34, -995338651
' Ronda 4
II a, b, c, d, x(0), S41, -198630844
II d, a, b, c, x(7), S42, 1126891415
II c, d, a, b, x(14), S43, -1416354905
II b, c, d, a, x(5), S44, -57434055
II a, b, c, d, a, x(5), S44, -57434055
II a, b, c, d, a, x(5), S44, -57434055Función privada UnsignedToLong (valor como doble) siempre
Si valor lt; O valor gt; = OFFSET_4 Entonces Error 6 ' Desbordamiento
Si valor lt = MAXINT_4 Entonces
UnsignedToLong = valor
Else
UnsignedToLong = valor - OFFSET_4
Finalizar si
Función final
'
' Convertir largo a doble sin firmar
'
Función privada LongToUnsigned(valor As Long) Como Doble
Si el valor lt;0 entonces
LongToUnsigned = valor OFFSET_4
De lo contrario
LongToUnsigned = valor
End If
Finalizar función
Aquí se explica cómo llamar
IF pss lt;gt; GetMD5(Txtpassword) THEN
. . . .