cryptdecrypt.bas

来自「能分班系统采用Z线分班方法:即由系统自动抽签(也可由班主任抽签)」· BAS 代码 · 共 75 行

BAS
75
字号
Attribute VB_Name = "CryptDeCrypt"


'
Const OFS_MAXPATHNAME = 128
Const OF_EXIST = &H4000
Private Type OFSTRUCT
    cBytes As Byte
    fFixedDisk As Byte
    nErrCode As Integer
    Reserved1 As Integer
    Reserved2 As Integer
    szPathName(OFS_MAXPATHNAME) As Byte
End Type
Private typOfStruct As OFSTRUCT
Declare Function apiOpenFile Lib "kernel32" Alias "OpenFile" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long
Public Function Exists(ByVal sFilename As String) As Boolean
    On Error Resume Next
    If Len(sFilename) > 0 Then
        apiOpenFile sFilename, typOfStruct, OF_EXIST
        Exists = typOfStruct.nErrCode <> 2
    End If
End Function

Public Function Crypt(texti, salasana) As String
    On Error Resume Next
    For T = 1 To Len(salasana)
        sana = Asc(Mid(salasana, T, 1))
        X1 = X1 + sana
    Next
    X1 = Int((X1 * 0.1) / 6)
    salasana = X1
    G = 0
    For TT = 1 To Len(texti)
        sana = Asc(Mid(texti, TT, 1))
        G = G + 1
        If G = 6 Then G = 0
        X1 = 0
        If G = 0 Then X1 = sana - (salasana - 2)
        If G = 1 Then X1 = sana + (salasana - 5)
        If G = 2 Then X1 = sana - (salasana - 4)
        If G = 3 Then X1 = sana + (salasana - 2)
        If G = 4 Then X1 = sana - (salasana - 3)
        If G = 5 Then X1 = sana + (salasana - 5)
        X1 = X1 + G
        Crypted = Crypted & Chr(X1)
    Next
    Crypt = Crypted
End Function
Public Function DeCrypt(texti, salasana) As String
    On Error Resume Next
    For T = 1 To Len(salasana)
        sana = Asc(Mid(salasana, T, 1))
        X1 = X1 + sana
    Next
    X1 = Int((X1 * 0.1) / 6)
    salasana = X1
    G = 0
    For TT = 1 To Len(texti)
        sana = Asc(Mid(texti, TT, 1))
        G = G + 1
        If G = 6 Then G = 0
        X1 = 0
        If G = 0 Then X1 = sana + (salasana - 2)
        If G = 1 Then X1 = sana - (salasana - 5)
        If G = 2 Then X1 = sana + (salasana - 4)
        If G = 3 Then X1 = sana - (salasana - 2)
        If G = 4 Then X1 = sana + (salasana - 3)
        If G = 5 Then X1 = sana - (salasana - 5)
        X1 = X1 - G
        DeCrypted = DeCrypted & Chr(X1)
    Next
    DeCrypt = DeCrypted
End Function

⌨️ 快捷键说明

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