Макрос по шифрованию данных в файлах Excel

  • Автор записи:
  • Запись опубликована:23.10.2023
  • Рубрика записи:Excel / VBA

Шифрование данных — важная функция безопасности, особенно при работе с конфиденциальными или секретными данными. В Excel вы можете использовать макросы для шифрования и дешифрования содержимого ячеек, чтобы защитить информацию от несанкционированного использования. В этой статье мы рассмотрим пример макроса, который позволяет шифровать и расшифровывать данные в Excel.

Макрос состоит из следующих частей:

  1. Encrypt: Этот макрос вызывает процедуру EncryptCellContents для шифрования содержимого выделенного диапазона ячеек.
  2. Decrypt: Этот макрос вызывает функцию DecryptString для дешифрования содержимого выделенного диапазона ячеек.
  3. EncryptCellContents: Эта процедура выполняет шифрование содержимого каждой ячейки в указанном диапазоне. Он вызывает функцию EncryptString для шифрования каждого символа в строке.
  4. EncryptString: Эта функция шифрует каждый символ в строке, преобразуя его в шестнадцатеричное представление и объединяя полученные значения.
  5. DecryptString: Эта функция дешифрует строку, преобразуя каждую пару символов обратно в символы и объединяя их в исходную строку.

Ниже представлен пример макроса:

Sub Encrypt()
    Dim rng As Range
    Set rng = Selection
    EncryptCellContents rng
End Sub

Sub Decrypt()
    Dim rng As Range
    Dim decryptedValue As String
    Set rng = Selection
    For Each cell In rng
        decryptedValue = DecryptString(cell.Value)
        cell.Value = decryptedValue
    Next
End Sub

Sub EncryptCellContents(ByVal rng As Range)
    Dim cell As Range
    For Each cell In rng
        Dim originalValue As String
        originalValue = cell.Value
        Dim encryptedValue As String
        encryptedValue = EncryptString(originalValue)
        cell.Value = encryptedValue
    Next cell
End Sub

Function EncryptString(ByVal str As String) As String
    Dim encryptedStr As String
    Dim i As Integer
    For i = 1 To Len(str)
        Dim character As String
        character = Mid(str, i, 1)
        Dim encryptedChar As String
        encryptedChar = Right("00" & Hex(Asc(character)), 2)
        encryptedStr = encryptedStr & encryptedChar
    Next i
    encryptString = encryptedStr
End Function

Function DecryptString(ByVal encryptedStr As String) As String
    Dim decryptedStr As String
    Dim i As Integer
    For i = 1 To Len(encryptedStr) Step 2
        Dim encryptedChar As String
        encryptedChar = Mid(encryptedStr, i, 2)
        Dim character As String
        character = Chr("&H" & encryptedChar)
        decryptedStr = decryptedStr & character
    Next i
    DecryptString = decryptedStr
End Function

Макрос использует простой алгоритм шифрования и дешифрования, который преобразует каждый символ в его шестнадцатеричное представление и обратно.

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

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.