VB 字符串自定义密匙加密及解密,VB 字符串自定义密匙加密,VB 字符串自定义密匙解密,VB 字符串定义密匙加密及解密,VB 字符串定义密匙加密,VB 字符串定义密匙解密,VB 字符串密匙加密及解密,VB 字符串密匙加密,VB 字符串密匙解密,VB 字符串加密及解密,VB 字符串加密,VB 字符串解密,VB 加密及解密,VB 加密,VB 解密。

VB 字符串自定义密匙加密及解密:

Option Explicit

Dim key()  As Byte

Sub TheKey()                                                                    '密匙
    ReDim key(9)                                                                '定义九位密匙
    key(0) = 12
    key(1) = 43
    key(2) = 53
    key(3) = 67
    key(4) = 78
    key(5) = 82
    key(6) = 91
    key(7) = 245
    key(8) = 218
    key(9) = 190
End Sub

Function PassEncode(ByVal s As String) As String                                '加密
    On Error GoTo over
    Dim Buff() As Byte, i As Long, j As Long, k As Long, mstr As String, outstr As String, temps As String
    TheKey                                                                      '读取密匙
    Buff = StrConv(s, vbFromUnicode)
    k = UBound(key) + 1
    For i = 0 To UBound(Buff)
        j = i Mod k
        Buff(i) = Buff(i) Xor key(j)
    Next
    mstr = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"     '定义字符集
    For i = 0 To UBound(Buff)
        k = Buff(i) \ Len(mstr)
        j = Buff(i) Mod Len(mstr)
        temps = Mid(mstr, j + 1, 1) + Mid(mstr, k + 1, 1)
        outstr = outstr + temps
    Next
    PassEncode = outstr
    Exit Function
over:
    PassEncode = ""
End Function

Function PassUnCode(ByVal s As String) As String                                '解密
    On Error GoTo over
    Dim i As Long, j As Long, k As Long, n As Long, mstr As String, outstr As String, temps As String, t1 As String, t2 As String, Buff() As Byte, m As Long
    TheKey                                                                      '读取密匙
    mstr = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"     '定义字符集
    If Len(s) Mod 2 = 1 Then
        PassUnCode = ""
        Exit Function
    End If
    m = 0
    For i = 1 To Len(s) Step 2
        t1 = Mid(s, i, 1)
        t2 = Mid(s, i + 1, 1)
        j = InStr(1, mstr, t1)
        k = InStr(1, mstr, t2)
        n = j - 1 + (k - 1) * Len(mstr)
        ReDim Preserve Buff(m)
        Buff(m) = n
        m = m + 1
    Next
    k = UBound(key) + 1
    For i = 0 To UBound(Buff)
        j = i Mod k
        Buff(i) = Buff(i) Xor key(j)
    Next
    PassUnCode = StrConv(Buff, vbUnicode)
    Exit Function
over:
    PassUnCode = ""
End Function