网络编程 
首页 > 网络编程 > 浏览文章

不错的主要用于加密的vbs(asp)位移运算类

(编辑:jimmy 日期: 2024/11/9 浏览:3 次 )
<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(2004);
</script>
上一篇:Script.VBS.Agent.ai juan.vbs专杀
下一篇:根据日期得到生肖的ASP函数
一句话新闻
微软与英特尔等合作伙伴联合定义“AI PC”:键盘需配有Copilot物理按键
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。