萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> asp編程 >> Asp加密函數的代碼

Asp加密函數的代碼

 <%  

Private Const BITS_TO_A_BYTE = 8 

Private Const BYTES_TO_A_WORD = 4 

Private Const BITS_TO_A_WORD = 32 

 

Private m_lOnBits(30)  

Private m_l2Power(30)  

   

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  

   

    lXlX8 = lX And &H80000000  

    lYlY8 = lY And &H80000000  

    lXlX4 = lX And &H40000000  

    lYlY4 = lY And &H40000000  

   

    lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF)  

   

    If lX4 And lY4 Then  

        lResultlResult = lResult Xor &H80000000 Xor lX8 Xor lY8  

    ElseIf lX4 Or lY4 Then  

        If lResult And &H40000000 Then  

            lResultlResult = lResult Xor &HC0000000 Xor lX8 Xor lY8  

        Else  

            lResultlResult = lResult Xor &H40000000 Xor lX8 Xor lY8  

        End If  

    Else  

        lResultlResult = 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 = (

copyright © 萬盛學電腦網 all rights reserved