Обратная связь для унаследованного кода с использованием оператора Xor - PullRequest
0 голосов
/ 22 ноября 2018

Я довольно новичок в VBA и унаследовал код VBA, и человек, который написал этот код, защитил листы с помощью приведенного ниже подпункта и функции.

Кто-нибудь может декодировать нижеприведенное?Похоже, он использует специальные символы, но этот код слишком сложен для моего текущего понимания.

Буду признателен за любые рекомендации или отзывы.

Public Sub makeSafe(ws As Worksheet, safe As Boolean)

    If safe Then
        If Not ws.Name = "COMPLETED" Then
            ws.Columns("A:B").Locked = False
            ws.Columns("D").Locked = False
        End If
        ws.Protect XOREnc("½ ·Î½ ·", "nope")
    Else
        ws.Unprotect XOREnc("½ ·Î½ ·", "nope")
    End If

End Sub

Function XOREnc(theInput As String, theKey As String) As String

    Dim val1, val2 As Integer, out As String, temp As Integer

    For i = 1 To Len(theInput)
        val1 = Asc(Mid(theInput, i, 1))
        val2 = Asc(Mid(theKey, i Mod Len(theKey) + 1, 1))
        If val1 Xor val2 < 32 Then
            temp = 255 - (val1 Xor val2)
        Else
            temp = val1 Xor val2
        End If
        out = out & Chr(temp)
     Next i
     XOREnc = out
End Function
...