⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cod_valuetwister.bas

📁 21加密算法,用vB语言编写实现,可了解各种加密算法的结构
💻 BAS
字号:
Attribute VB_Name = "Cod_ValueTwister"


Option Explicit

Private TwistPos As Integer
Private Dictionary As String

'This coder work with a dictionary of all ascii codes
'but don't keep track of the counts
'every time a character is encountered it will be trade places in the
'dictionary with the character that was encountered the last time
'the twister was used

Public Sub ValueTwister_Coder(ByteArray() As Byte)
    Dim X As Long
    Dim Temp As Byte
    Call Init_ValueTwister
    For X = 0 To UBound(ByteArray)
        Temp = ByteArray(X)
        ByteArray(X) = InStr(Dictionary, Chr(Temp)) - 1
        Call update_Model(Temp)
    Next
End Sub

Public Sub ValueTwister_DeCoder(ByteArray() As Byte)
    Dim X As Long
    Dim Temp As Byte
    Call Init_ValueTwister
    For X = 0 To UBound(ByteArray)
        Temp = ASC(Mid(Dictionary, ByteArray(X) + 1, 1))
        ByteArray(X) = Temp
        Call update_Model(Temp)
    Next
End Sub

Private Sub Init_ValueTwister()
    Dim X As Integer
    Dictionary = ""
    For X = 0 To 255
        Dictionary = Dictionary & Chr(X)
    Next
    TwistPos = 1
End Sub

Private Sub update_Model(Char As Byte)
    Dim DictPos As Integer
    Dim TwistChar As String
    Dim Temp As Integer
    DictPos = InStr(Dictionary, Chr(Char))
    If TwistPos = DictPos Then Exit Sub
    TwistChar = Mid(Dictionary, TwistPos, 1)
    If DictPos < TwistPos Then
        Dictionary = Left(Dictionary, DictPos - 1) & TwistChar & Mid(Dictionary, DictPos + 1, TwistPos - DictPos - 1) & Chr(Char) & Mid(Dictionary, TwistPos + 1)
    Else
        Dictionary = Left(Dictionary, TwistPos - 1) & Chr(Char) & Mid(Dictionary, TwistPos + 1, DictPos - TwistPos - 1) & TwistChar & Mid(Dictionary, DictPos + 1)
    End If
    If TwistPos = 2 Then
        TwistPos = 1
    Else
        TwistPos = TwistPos + 1
    End If
End Sub


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -