Set fso=Server.CreateObject("Scripting.FileSystemObject") Set ServUIni = fso.OpenTextFile(iniPath "\" iniFileName,1,false)
iniStr = "" n = 0 addedUserList = false
Set tf = fso.CreateTextFile(iniPath "\" iniFileName "._awaysrain.tmp", True) '生成新的临时INI文件
Do While not ServUIni.AtEndOfStream tmpStr = ServUIni.ReadLine
If Instr("awaysrain||" tmpStr,"awaysrain||User")>0 Then '记录用户原来的数量 n = n+1 End If
If Instr("awaysrain||" tmpStr,"awaysrain||[USER=")>0 and not addedUserList Then '往用户列表的部分添加现在的用户 n = n +1 tf.WriteLine("User" n "=" userName "|1|0") addedUserList = true End If tf.WriteLine(tmpStr) Loop ServUIni.Close
Private Function LShift(lValue, iShiftBits) If iShiftBits = 0 Then LShift = lValue Exit Function ElseIf iShiftBits = 31 Then If lValue And 1 Then LShift = H80000000 Else LShift = 0 End If Exit Function ElseIf iShiftBits 0 Or iShiftBits > 31 Then Err.Raise 6 End If
If (lValue And m_l2Power(31 - iShiftBits)) Then LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or H80000000 Else LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits)) End If End Function
Private Function RShift(lValue, iShiftBits) If iShiftBits = 0 Then RShift = lValue Exit Function ElseIf iShiftBits = 31 Then If lValue And H80000000 Then RShift = 1 Else RShift = 0 End If Exit Function ElseIf iShiftBits 0 Or iShiftBits > 31 Then Err.Raise 6 End If
RShift = (lValue And H7FFFFFFE) \&;m_l2Power(iShiftBits)
If (lValue And H80000000) Then RShift = (RShift Or (H40000000 \&;m_l2Power(iShiftBits - 1))) End If End Function
Private Function RotateLeft(lValue, iShiftBits) RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits)) End Function
Private Function AddUnsigned(lX, lY) Dim lX4 Dim lY4 Dim lX8 Dim lY8 Dim lResult
lX8 = lX And H80000000 lY8 = lY And H80000000 lX4 = lX And H40000000 lY4 = lY And H40000000
lResult = (lX And H3FFFFFFF) + (lY And H3FFFFFFF)
If lX4 And lY4 Then lResult = lResult Xor H80000000 Xor lX8 Xor lY8 ElseIf lX4 Or lY4 Then If lResult And H40000000 Then lResult = lResult Xor HC0000000 Xor lX8 Xor lY8 Else lResult = lResult Xor H40000000 Xor lX8 Xor lY8 End If Else lResult = lResult Xor lX8 Xor lY8 End If
AddUnsigned = lResult End Function
Private Function md5_F(x, y, z) md5_F = (x And y) Or ((Not x) And z) End Function
Private Function md5_G(x, y, z) md5_G = (x And z) Or (y And (Not z)) End Function
Private Function md5_H(x, y, z) md5_H = (x Xor y Xor z) End Function
Private Function md5_I(x, y, z) md5_I = (y Xor (x Or (Not z))) End Function
Private Sub md5_FF(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_F(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub
Private Sub md5_GG(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_G(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub
Private Sub md5_HH(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub
Private Sub md5_II(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_I(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub
Private Function ConvertToWordArray(sMessage) Dim lMessageLength Dim lNumberOfWords Dim lWordArray() Dim lBytePosition Dim lByteCount Dim lWordCount
a = H67452301 b = HEFCDAB89 c = H98BADCFE d = H10325476
For k = 0 To UBound(x) Step 16 AA = a BB = b CC = c DD = d
md5_FF a, b, c, d, x(k + 0), S11, HD76AA478 md5_FF d, a, b, c, x(k + 1), S12, HE8C7B756 md5_FF c, d, a, b, x(k + 2), S13, H242070DB md5_FF b, c, d, a, x(k + 3), S14, HC1BDCEEE md5_FF a, b, c, d, x(k + 4), S11, HF57C0FAF md5_FF d, a, b, c, x(k + 5), S12, H4787C62A md5_FF c, d, a, b, x(k + 6), S13, HA8304613 md5_FF b, c, d, a, x(k + 7), S14, HFD469501 md5_FF a, b, c, d, x(k + 8), S11, H698098D8 md5_FF d, a, b, c, x(k + 9), S12, H8B44F7AF md5_FF c, d, a, b, x(k + 10), S13, HFFFF5BB1 md5_FF b, c, d, a, x(k + 11), S14, H895CD7BE md5_FF a, b, c, d, x(k + 12), S11, H6B901122 md5_FF d, a, b, c, x(k + 13), S12, HFD987193 md5_FF c, d, a, b, x(k + 14), S13, HA679438E md5_FF b, c, d, a, x(k + 15), S14, H49B40821
md5_GG a, b, c, d, x(k + 1), S21, HF61E2562 md5_GG d, a, b, c, x(k + 6), S22, HC040B340 md5_GG c, d, a, b, x(k + 11), S23, H265E5A51 md5_GG b, c, d, a, x(k + 0), S24, HE9B6C7AA md5_GG a, b, c, d, x(k + 5), S21, HD62F105D md5_GG d, a, b, c, x(k + 10), S22, H2441453 md5_GG c, d, a, b, x(k + 15), S23, HD8A1E681 md5_GG b, c, d, a, x(k + 4), S24, HE7D3FBC8 md5_GG a, b, c, d, x(k + 9), S21, H21E1CDE6 md5_GG d, a, b, c, x(k + 14), S22, HC33707D6 md5_GG c, d, a, b, x(k + 3), S23, HF4D50D87 md5_GG b, c, d, a, x(k + 8), S24, H455A14ED md5_GG a, b, c, d, x(k + 13), S21, HA9E3E905 md5_GG d, a, b, c, x(k + 2), S22, HFCEFA3F8 md5_GG c, d, a, b, x(k + 7), S23, H676F02D9 md5_GG b, c, d, a, x(k + 12), S24, H8D2A4C8A
md5_HH a, b, c, d, x(k + 5), S31, HFFFA3942 md5_HH d, a, b, c, x(k + 8), S32, H8771F681 md5_HH c, d, a, b, x(k + 11), S33, H6D9D6122 md5_HH b, c, d, a, x(k + 14), S34, HFDE5380C md5_HH a, b, c, d, x(k + 1), S31, HA4BEEA44 md5_HH d, a, b, c, x(k + 4), S32, H4BDECFA9 md5_HH c, d, a, b, x(k + 7), S33, HF6BB4B60 md5_HH b, c, d, a, x(k + 10), S34, HBEBFBC70 md5_HH a, b, c, d, x(k + 13), S31, H289B7EC6 md5_HH d, a, b, c, x(k + 0), S32, HEAA127FA md5_HH c, d, a, b, x(k + 3), S33, HD4EF3085 md5_HH b, c, d, a, x(k + 6), S34, H4881D05 md5_HH a, b, c, d, x(k + 9), S31, HD9D4D039 md5_HH d, a, b, c, x(k + 12), S32, HE6DB99E5 md5_HH c, d, a, b, x(k + 15), S33, H1FA27CF8 md5_HH b, c, d, a, x(k + 2), S34, HC4AC5665
md5_II a, b, c, d, x(k + 0), S41, HF4292244 md5_II d, a, b, c, x(k + 7), S42, H432AFF97 md5_II c, d, a, b, x(k + 14), S43, HAB9423A7 md5_II b, c, d, a, x(k + 5), S44, HFC93A039 md5_II a, b, c, d, x(k + 12), S41, H655B59C3 md5_II d, a, b, c, x(k + 3), S42, H8F0CCC92 md5_II c, d, a, b, x(k + 10), S43, HFFEFF47D md5_II b, c, d, a, x(k + 1), S44, H85845DD1 md5_II a, b, c, d, x(k + 8), S41, H6FA87E4F md5_II d, a, b, c, x(k + 15), S42, HFE2CE6E0 md5_II c, d, a, b, x(k + 6), S43, HA3014314 md5_II b, c, d, a, x(k + 13), S44, H4E0811A1 md5_II a, b, c, d, x(k + 4), S41, HF7537E82 md5_II d, a, b, c, x(k + 11), S42, HBD3AF235 md5_II c, d, a, b, x(k + 2), S43, H2AD7D2BB md5_II b, c, d, a, x(k + 9), S44, HEB86D391
a = AddUnsigned(a, AA) b = AddUnsigned(b, BB) c = AddUnsigned(c, CC) d = AddUnsigned(d, DD) Next
MD5 = LCase(WordToHex(a) WordToHex(b) WordToHex(c) WordToHex(d)) 'MD5=LCase(WordToHex(b) WordToHex(c)) 'I crop this to fit 16byte database password :D End Function %>