📄 md5.aspx.vb
字号:
Dim lWordCount
Const MODULUS_BITS = 512
Const CONGRUENT_BITS = 448
lMessageLength = AspToAspX_Len ( sMessage ) '122
lNumberOfWords = ( ( ( lMessageLength + ( ( MODULUS_BITS - CONGRUENT_BITS ) \ BITS_TO_A_BYTE ) ) \ ( MODULUS_BITS \ BITS_TO_A_BYTE ) ) + 1 ) * ( MODULUS_BITS \ BITS_TO_A_WORD ) '124
ReDim lWordArray ( lNumberOfWords - 1 ) '125
lBytePosition = 0 '127
lByteCount = 0 '128
Do Until lByteCount > = lMessageLength '129
lWordCount = lByteCount \ BYTES_TO_A_WORD '130
lBytePosition = ( lByteCount Mod BYTES_TO_A_WORD ) * BITS_TO_A_BYTE '131
lWordArray ( lWordCount ) = lWordArray ( lWordCount ) Or LShift ( Asc ( Mid ( sMessage , lByteCount + 1 , 1 ) ) , lBytePosition ) '132
lByteCount = lByteCount + 1 '133
Loop '134
lWordCount = lByteCount \ BYTES_TO_A_WORD '135
lBytePosition = ( lByteCount Mod BYTES_TO_A_WORD ) * BITS_TO_A_BYTE '136
lWordArray ( lWordCount ) = lWordArray ( lWordCount ) Or LShift ( &H80 , lBytePosition ) '137
lWordArray ( lNumberOfWords - 2 ) = LShift ( lMessageLength , 3 ) '138
lWordArray ( lNumberOfWords - 1 ) = RShift ( lMessageLength , 29 ) '139
ConvertToWordArray = lWordArray '141
Exit Function
_AspToAspX_Err:
AspToAspX_WriteLog("E:\FTBBS_UTF8_7.0\UPLOAD\INC\MD5.ASP ConvertToWordArray:" & Err.Description)
Resume Next
End Function
'E:\FTBBS_UTF8_7.0\UPLOAD\INC\MD5.ASP
Public Function WordToHex(ByRef lValue )
On Error GoTo _AspToAspX_Err
Dim lByte
Dim lCount
For lCount = 0 To 3 '147
lByte = RShift ( lValue , lCount * BITS_TO_A_BYTE ) And m_lOnBits ( BITS_TO_A_BYTE - 1 ) '148
WordToHex = WordToHex & Right ( "0" & Hex ( lByte ) , 2 ) '149
Next '150
Exit Function
_AspToAspX_Err:
AspToAspX_WriteLog("E:\FTBBS_UTF8_7.0\UPLOAD\INC\MD5.ASP WordToHex:" & Err.Description)
Resume Next
End Function
'E:\FTBBS_UTF8_7.0\UPLOAD\INC\MD5.ASP
Public Function MD5(ByRef sMessage )
On Error GoTo _AspToAspX_Err
Dim x
Dim k
Dim AA
Dim BB
Dim CC
Dim DD
Dim a
Dim b
Dim c
Dim d
Const S11 = 7
Const S12 = 12
Const S13 = 17
Const S14 = 22
Const S21 = 5
Const S22 = 9
Const S23 = 14
Const S24 = 20
Const S31 = 4
Const S32 = 11
Const S33 = 16
Const S34 = 23
Const S41 = 6
Const S42 = 10
Const S43 = 15
Const S44 = 21
m_lOnBits ( 0 ) = AspToAspX_CInt ( 1 ) '153
m_lOnBits ( 1 ) = AspToAspX_CInt ( 3 ) '154
m_lOnBits ( 2 ) = AspToAspX_CInt ( 7 ) '155
m_lOnBits ( 3 ) = AspToAspX_CInt ( 15 ) '156
m_lOnBits ( 4 ) = AspToAspX_CInt ( 31 ) '157
m_lOnBits ( 5 ) = AspToAspX_CInt ( 63 ) '158
m_lOnBits ( 6 ) = AspToAspX_CInt ( 127 ) '159
m_lOnBits ( 7 ) = AspToAspX_CInt ( 255 ) '160
m_lOnBits ( 8 ) = AspToAspX_CInt ( 511 ) '161
m_lOnBits ( 9 ) = AspToAspX_CInt ( 1023 ) '162
m_lOnBits ( 10 ) = AspToAspX_CInt ( 2047 ) '163
m_lOnBits ( 11 ) = AspToAspX_CInt ( 4095 ) '164
m_lOnBits ( 12 ) = AspToAspX_CInt ( 8191 ) '165
m_lOnBits ( 13 ) = AspToAspX_CInt ( 16383 ) '166
m_lOnBits ( 14 ) = AspToAspX_CInt ( 32767 ) '167
m_lOnBits ( 15 ) = AspToAspX_CInt ( 65535 ) '168
m_lOnBits ( 16 ) = AspToAspX_CInt ( 131071 ) '169
m_lOnBits ( 17 ) = AspToAspX_CInt ( 262143 ) '170
m_lOnBits ( 18 ) = AspToAspX_CInt ( 524287 ) '171
m_lOnBits ( 19 ) = AspToAspX_CInt ( 1048575 ) '172
m_lOnBits ( 20 ) = AspToAspX_CInt ( 2097151 ) '173
m_lOnBits ( 21 ) = AspToAspX_CInt ( 4194303 ) '174
m_lOnBits ( 22 ) = AspToAspX_CInt ( 8388607 ) '175
m_lOnBits ( 23 ) = AspToAspX_CInt ( 16777215 ) '176
m_lOnBits ( 24 ) = AspToAspX_CInt ( 33554431 ) '177
m_lOnBits ( 25 ) = AspToAspX_CInt ( 67108863 ) '178
m_lOnBits ( 26 ) = AspToAspX_CInt ( 134217727 ) '179
m_lOnBits ( 27 ) = AspToAspX_CInt ( 268435455 ) '180
m_lOnBits ( 28 ) = AspToAspX_CInt ( 536870911 ) '181
m_lOnBits ( 29 ) = AspToAspX_CInt ( 1073741823 ) '182
m_lOnBits ( 30 ) = AspToAspX_CInt ( 2147483647 ) '183
m_l2Power ( 0 ) = AspToAspX_CInt ( 1 ) '185
m_l2Power ( 1 ) = AspToAspX_CInt ( 2 ) '186
m_l2Power ( 2 ) = AspToAspX_CInt ( 4 ) '187
m_l2Power ( 3 ) = AspToAspX_CInt ( 8 ) '188
m_l2Power ( 4 ) = AspToAspX_CInt ( 16 ) '189
m_l2Power ( 5 ) = AspToAspX_CInt ( 32 ) '190
m_l2Power ( 6 ) = AspToAspX_CInt ( 64 ) '191
m_l2Power ( 7 ) = AspToAspX_CInt ( 128 ) '192
m_l2Power ( 8 ) = AspToAspX_CInt ( 256 ) '193
m_l2Power ( 9 ) = AspToAspX_CInt ( 512 ) '194
m_l2Power ( 10 ) = AspToAspX_CInt ( 1024 ) '195
m_l2Power ( 11 ) = AspToAspX_CInt ( 2048 ) '196
m_l2Power ( 12 ) = AspToAspX_CInt ( 4096 ) '197
m_l2Power ( 13 ) = AspToAspX_CInt ( 8192 ) '198
m_l2Power ( 14 ) = AspToAspX_CInt ( 16384 ) '199
m_l2Power ( 15 ) = AspToAspX_CInt ( 32768 ) '200
m_l2Power ( 16 ) = AspToAspX_CInt ( 65536 ) '201
m_l2Power ( 17 ) = AspToAspX_CInt ( 131072 ) '202
m_l2Power ( 18 ) = AspToAspX_CInt ( 262144 ) '203
m_l2Power ( 19 ) = AspToAspX_CInt ( 524288 ) '204
m_l2Power ( 20 ) = AspToAspX_CInt ( 1048576 ) '205
m_l2Power ( 21 ) = AspToAspX_CInt ( 2097152 ) '206
m_l2Power ( 22 ) = AspToAspX_CInt ( 4194304 ) '207
m_l2Power ( 23 ) = AspToAspX_CInt ( 8388608 ) '208
m_l2Power ( 24 ) = AspToAspX_CInt ( 16777216 ) '209
m_l2Power ( 25 ) = AspToAspX_CInt ( 33554432 ) '210
m_l2Power ( 26 ) = AspToAspX_CInt ( 67108864 ) '211
m_l2Power ( 27 ) = AspToAspX_CInt ( 134217728 ) '212
m_l2Power ( 28 ) = AspToAspX_CInt ( 268435456 ) '213
m_l2Power ( 29 ) = AspToAspX_CInt ( 536870912 ) '214
m_l2Power ( 30 ) = AspToAspX_CInt ( 1073741824 ) '215
x = ConvertToWordArray ( sMessage ) '243
a = &H67452301 '245
b = &HEFCDAB89 '246
c = &H98BADCFE '247
d = &H10325476 '248
For k = 0 To Val ( UBound ( x ) ) Step 16 '249
AA = a '250
BB = b '251
CC = c '252
DD = d '253
md5_FF ( a , b , c , d , x ( k + 0 ) , S11 , &HD76AA478 ) '255
md5_FF ( d , a , b , c , x ( k + 1 ) , S12 , &HE8C7B756 ) '256
md5_FF ( c , d , a , b , x ( k + 2 ) , S13 , &H242070DB ) '257
md5_FF ( b , c , d , a , x ( k + 3 ) , S14 , &HC1BDCEEE ) '258
md5_FF ( a , b , c , d , x ( k + 4 ) , S11 , &HF57C0FAF ) '259
md5_FF ( d , a , b , c , x ( k + 5 ) , S12 , &H4787C62A ) '260
md5_FF ( c , d , a , b , x ( k + 6 ) , S13 , &HA8304613 ) '261
md5_FF ( b , c , d , a , x ( k + 7 ) , S14 , &HFD469501 ) '262
md5_FF ( a , b , c , d , x ( k + 8 ) , S11 , &H698098D8 ) '263
md5_FF ( d , a , b , c , x ( k + 9 ) , S12 , &H8B44F7AF ) '264
md5_FF ( c , d , a , b , x ( k + 10 ) , S13 , &HFFFF5BB1 ) '265
md5_FF ( b , c , d , a , x ( k + 11 ) , S14 , &H895CD7BE ) '266
md5_FF ( a , b , c , d , x ( k + 12 ) , S11 , &H6B901122 ) '267
md5_FF ( d , a , b , c , x ( k + 13 ) , S12 , &HFD987193 ) '268
md5_FF ( c , d , a , b , x ( k + 14 ) , S13 , &HA679438E ) '269
md5_FF ( b , c , d , a , x ( k + 15 ) , S14 , &H49B40821 ) '270
md5_GG ( a , b , c , d , x ( k + 1 ) , S21 , &HF61E2562 ) '272
md5_GG ( d , a , b , c , x ( k + 6 ) , S22 , &HC040B340 ) '273
md5_GG ( c , d , a , b , x ( k + 11 ) , S23 , &H265E5A51 ) '274
md5_GG ( b , c , d , a , x ( k + 0 ) , S24 , &HE9B6C7AA ) '275
md5_GG ( a , b , c , d , x ( k + 5 ) , S21 , &HD62F105D ) '276
md5_GG ( d , a , b , c , x ( k + 10 ) , S22 , &H2441453 ) '277
md5_GG ( c , d , a , b , x ( k + 15 ) , S23 , &HD8A1E681 ) '278
md5_GG ( b , c , d , a , x ( k + 4 ) , S24 , &HE7D3FBC8 ) '279
md5_GG ( a , b , c , d , x ( k + 9 ) , S21 , &H21E1CDE6 ) '280
md5_GG ( d , a , b , c , x ( k + 14 ) , S22 , &HC33707D6 ) '281
md5_GG ( c , d , a , b , x ( k + 3 ) , S23 , &HF4D50D87 ) '282
md5_GG ( b , c , d , a , x ( k + 8 ) , S24 , &H455A14ED ) '283
md5_GG ( a , b , c , d , x ( k + 13 ) , S21 , &HA9E3E905 ) '284
md5_GG ( d , a , b , c , x ( k + 2 ) , S22 , &HFCEFA3F8 ) '285
md5_GG ( c , d , a , b , x ( k + 7 ) , S23 , &H676F02D9 ) '286
md5_GG ( b , c , d , a , x ( k + 12 ) , S24 , &H8D2A4C8A ) '287
md5_HH ( a , b , c , d , x ( k + 5 ) , S31 , &HFFFA3942 ) '289
md5_HH ( d , a , b , c , x ( k + 8 ) , S32 , &H8771F681 ) '290
md5_HH ( c , d , a , b , x ( k + 11 ) , S33 , &H6D9D6122 ) '291
md5_HH ( b , c , d , a , x ( k + 14 ) , S34 , &HFDE5380C ) '292
md5_HH ( a , b , c , d , x ( k + 1 ) , S31 , &HA4BEEA44 ) '293
md5_HH ( d , a , b , c , x ( k + 4 ) , S32 , &H4BDECFA9 ) '294
md5_HH ( c , d , a , b , x ( k + 7 ) , S33 , &HF6BB4B60 ) '295
md5_HH ( b , c , d , a , x ( k + 10 ) , S34 , &HBEBFBC70 ) '296
md5_HH ( a , b , c , d , x ( k + 13 ) , S31 , &H289B7EC6 ) '297
md5_HH ( d , a , b , c , x ( k + 0 ) , S32 , &HEAA127FA ) '298
md5_HH ( c , d , a , b , x ( k + 3 ) , S33 , &HD4EF3085 ) '299
md5_HH ( b , c , d , a , x ( k + 6 ) , S34 , &H4881D05 ) '300
md5_HH ( a , b , c , d , x ( k + 9 ) , S31 , &HD9D4D039 ) '301
md5_HH ( d , a , b , c , x ( k + 12 ) , S32 , &HE6DB99E5 ) '302
md5_HH ( c , d , a , b , x ( k + 15 ) , S33 , &H1FA27CF8 ) '303
md5_HH ( b , c , d , a , x ( k + 2 ) , S34 , &HC4AC5665 ) '304
md5_II ( a , b , c , d , x ( k + 0 ) , S41 , &HF4292244 ) '306
md5_II ( d , a , b , c , x ( k + 7 ) , S42 , &H432AFF97 ) '307
md5_II ( c , d , a , b , x ( k + 14 ) , S43 , &HAB9423A7 ) '308
md5_II ( b , c , d , a , x ( k + 5 ) , S44 , &HFC93A039 ) '309
md5_II ( a , b , c , d , x ( k + 12 ) , S41 , &H655B59C3 ) '310
md5_II ( d , a , b , c , x ( k + 3 ) , S42 , &H8F0CCC92 ) '311
md5_II ( c , d , a , b , x ( k + 10 ) , S43 , &HFFEFF47D ) '312
md5_II ( b , c , d , a , x ( k + 1 ) , S44 , &H85845DD1 ) '313
md5_II ( a , b , c , d , x ( k + 8 ) , S41 , &H6FA87E4F ) '314
md5_II ( d , a , b , c , x ( k + 15 ) , S42 , &HFE2CE6E0 ) '315
md5_II ( c , d , a , b , x ( k + 6 ) , S43 , &HA3014314 ) '316
md5_II ( b , c , d , a , x ( k + 13 ) , S44 , &H4E0811A1 ) '317
md5_II ( a , b , c , d , x ( k + 4 ) , S41 , &HF7537E82 ) '318
md5_II ( d , a , b , c , x ( k + 11 ) , S42 , &HBD3AF235 ) '319
md5_II ( c , d , a , b , x ( k + 2 ) , S43 , &H2AD7D2BB ) '320
md5_II ( b , c , d , a , x ( k + 9 ) , S44 , &HEB86D391 ) '321
a = AddUnsigned ( a , AA ) '323
b = AddUnsigned ( b , BB ) '324
c = AddUnsigned ( c , CC ) '325
d = AddUnsigned ( d , DD ) '326
Next '327
MD5 = LCase ( WordToHex ( b ) & WordToHex ( c ) ) '330
Exit Function
_AspToAspX_Err:
AspToAspX_WriteLog("E:\FTBBS_UTF8_7.0\UPLOAD\INC\MD5.ASP MD5:" & Err.Description)
Resume Next
End Function
#Region "..."
#End Region
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -