程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> 不錯的主要用於加密的vbs(asp)位移運算類

不錯的主要用於加密的vbs(asp)位移運算類

編輯:關於ASP編程
<script language="vbscript">
' Aother: 奔騰的心
'     QQ: 7180001
'   Date: 2008-01-17

Class mShift

    Private m_lPower2(31)

    Public Function RShift(ByVal lThis, ByVal lBits)
        On Error Resume Next
        Init
        If (lBits <= 0) Then
           RShift = lThis
        ElseIf (lBits > 63) Then
           ' .. error ...
        ElseIf (lBits > 31) Then
           RShift = 0
        Else
           If (lThis And m_lPower2(31 - lBits)) = m_lPower2(31 - lBits) Then
              RShift = (lThis And (m_lPower2(31 - lBits) - 1)) * m_lPower2(lBits) Or 
m_lPower2(31)
           Else
              RShift = (lThis And (m_lPower2(31 - lBits) - 1)) * m_lPower2(lBits)
           End If
        End If
    End Function

    Public Function LShift(ByVal lThis, ByVal lBits)
        On Error Resume Next
        Init
        If (lBits <= 0) Then
           LShift = lThis
        ElseIf (lBits > 63) Then
           ' ... error ...
        ElseIf (lBits > 31) Then
           LShift = 0
        Else
           If (lThis And m_lPower2(31)) = m_lPower2(31) Then
              LShift = (lThis And &H7FFFFFFF) \ m_lPower2(lBits) Or m_lPower2(31 - lBits)
           Else
              LShift = lThis \ m_lPower2(lBits)
           End If
        End If
    End Function

    Private Sub Init()
        On Error Resume Next
        m_lPower2(0) = &H1&
        m_lPower2(1) = &H2&
        m_lPower2(2) = &H4&
        m_lPower2(3) = &H8&
        m_lPower2(4) = &H10&
        m_lPower2(5) = &H20&
        m_lPower2(6) = &H40&
        m_lPower2(7) = &H80&
        m_lPower2(8) = &H100&
        m_lPower2(9) = &H200&
        m_lPower2(10) = &H400&
        m_lPower2(11) = &H800&
        m_lPower2(12) = &H1000&
        m_lPower2(13) = &H2000&
        m_lPower2(14) = &H4000&
        m_lPower2(15) = &H8000&
        m_lPower2(16) = &H10000
        m_lPower2(17) = &H20000
        m_lPower2(18) = &H40000
        m_lPower2(19) = &H80000
        m_lPower2(20) = &H100000
        m_lPower2(21) = &H200000
        m_lPower2(22) = &H400000
        m_lPower2(23) = &H800000
        m_lPower2(24) = &H1000000
        m_lPower2(25) = &H2000000
        m_lPower2(26) = &H4000000
        m_lPower2(27) = &H8000000
        m_lPower2(28) = &H10000000
        m_lPower2(29) = &H20000000
        m_lPower2(30) = &H40000000
        m_lPower2(31) = &H80000000
    End Sub

End Class

Dim sft
Set sft = New mShift
MsgBox sft.RShift(200, 4)
MsgBox sft.LShift(200, 4)
Set sft = Nothing
</script>


<script language="javascript">
alert(200<<4);
alert(200>>4);
</script>
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved