Чем закодировать ячейки excel

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

Рассмотрим способы защиты документа Excel и его отдельных элементов.

Защита ячейки Excel от изменения

Как поставить защиту на ячейку в Excel? По умолчанию все ячейки в Excel защищаемые. Это легко проверить: кликаем на любую ячейку правой кнопкой, выбираем ФОРМАТ ЯЧЕЕК – ЗАЩИТА. Видим, что галочка на пункте ЗАЩИЩАЕМАЯ ЯЧЕЙКА проставлена. Но это еще не значит, что они уже защищены от изменений.

Защищаемая ячейка.

Зачем нам эта информация? Дело в том, что в Excel нет такой функции, которая позволяет защитить отдельную ячейку. Можно выбрать защиту листа, и тогда все ячейки на нем будут защищены от редактирования и другого вмешательства. С одной стороны это удобно, но что делать, если нам нужно защитить не все ячейки, а лишь некоторые?

Рассмотрим пример. Имеем простую таблицу с данными. Такую таблицу нам нужно разослать в филиалы, чтобы магазины заполнили столбец ПРОДАННОЕ КОЛИЧЕСТВО и отправили обратно. Во избежание внесения каких-то изменений в другие ячейки, защитим их.

Для начала освободим от защиты те ячейки, куда сотрудники филиалов будут вносить изменения. Выделяем D4:D11, правой кнопкой вызываем меню, выбираем ФОРМАТ ЯЧЕЕК и убираем галочку с пункта ЗАЩИЩАЕМАЯ ЯЧЕЙКА.

Теперь выбираем вкладку РЕЦЕНЗИРОВАНИЕ – ЗАЩИТИТЬ ЛИСТ. Появляется такое окно, где будут проставлены 2 галочки. Первую из них мы убираем, чтобы исключить любое вмешательство сотрудников филиалов, кроме заполнения столбца ПРОДАННОЕ КОЛИЧЕСТВО. Придумываем пароль и нажимаем ОК.

Защита листа.

Внимание! Не забудьте свой пароль!

Теперь в диапазон D4:D11 посторонние лица смогут только вписать какое-то значение. Т.к. мы ограничили все остальные действия, никто не сможет даже изменить цвет фона. Все средства форматирования на верхней панели инструментов не активные. Т.е. они не работают.



Защита книги Excel от редактирования

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

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

Прежнее форматирование сохраняем. Т.е. у нас по-прежнему можно вносить изменения только в столбец ПРОДАННОЕ КОЛИЧЕСТВО. Чтобы защитить книгу полностью, на вкладке РЕЦЕНЗИРОВАНИЕ выбираем ЗАЩИТИТЬ КНИГУ. Оставляем галочки напротив пункта СТРУКТУРУ и придумываем пароль.

Защита книги.

Теперь, если мы попробуем переименовать лист, у нас это не получится. Все команды серого цвета: они не работают.

Снимается защита с листа и книги теми же кнопками. При снятии система будет требовать тот же пароль.

Содержание

  • Включение блокирования ячеек
    • Способ 1: включение блокировки через вкладку «Файл»
    • Способ 2: включение блокировки через вкладку «Рецензирование»
  • Разблокировка диапазона
  • Вопросы и ответы

Защита ячеек в Microsoft Excel

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

Включение блокирования ячеек

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

Способ 1: включение блокировки через вкладку «Файл»

Для того, чтобы защитить ячейку или диапазон нужно произвести действия, которые описаны ниже.

  1. Выделите весь лист, кликнув по прямоугольнику, который находится на пересечении панелей координат Excel. Кликните правой кнопкой мыши. В появившемся контекстном меню перейдите по пункту «Формат ячеек…».
  2. Переход в формат ячеек в Microsoft Excel

  3. Откроется окно изменения формата ячеек. Перейдите во вкладку «Защита». Снимите галочку около параметра «Защищаемая ячейка». Нажмите на кнопку «OK».
  4. Защита в формате ячеек в Microsoft Excel

  5. Выделите диапазон, который желаете заблокировать. Опять перейдите в окно «Формат ячеек…».
  6. Перемещение в формат ячеек в Microsoft Excel

  7. Во вкладке «Защита» поставьте галочку у пункта «Защищаемая ячейка». Кликните по кнопке «OK».
    Включение защиты в формате ячеек в Microsoft Excel

    Но, дело в том, что после этого диапазон ещё не стал защищенным. Он станет таковым только тогда, когда мы включим защиту листа. Но при этом, изменять нельзя будет только те ячейки, где мы установили галочки в соответствующем пункте, а те, в которых галочки были сняты, останутся редактируемыми.

  8. Переходим во вкладку «Файл».
  9. Перемещение во вкладку Файл в программе Microsoft Excel

  10. В разделе «Сведения» кликаем по кнопке «Защитить книгу». В появившемся списке выбираем пункт «Защитить текущий лист».
  11. Переход к влючению защиты листа в Microsoft Excel

  12. Открываются настройки защиты листа. Обязательно должна стоять галочка около параметра «Защитить лист и содержимое защищаемых ячеек». При желании можно установить блокирование определенных действий, изменяя настройки в параметрах, находящихся ниже. Но, в большинстве случаев, настройки выставленные по умолчанию, удовлетворяют потребностям пользователей по блокировке диапазонов. В поле «Пароль для отключения защиты листа» нужно ввести любое ключевое слово, которое будет использоваться для доступа к возможностям редактирования. После того, как настройки выполнены, жмем на кнопку «OK».
  13. Настройки защиты листа в Microsoft Excel

  14. Открывается ещё одно окно, в котором следует повторить пароль. Это сделано для того, чтобы, если пользователь в первый раз ввел ошибочный пароль, тем самым навсегда не заблокировал бы сам себе доступ к редактированию. После ввода ключа нужно нажать кнопку «OK». Если пароли совпадут, то блокировка будет завершена. Если они не совпадут, то придется производить повторный ввод.

Подтверждение пароля в Microsoft Excel

Теперь те диапазоны, которые мы ранее выделили и в настройках форматирования установили их защиту, будут недоступны для редактирования. В остальных областях можно производить любые действия и сохранять результаты.

Способ 2: включение блокировки через вкладку «Рецензирование»

Существует ещё один способ заблокировать диапазон от нежелательного изменения. Впрочем, этот вариант отличается от предыдущего способа только тем, что выполняется через другую вкладку.

  1. Снимаем и устанавливаем флажки около параметра «Защищаемая ячейка» в окне формата соответствующих диапазонов точно так же, как мы это делали в предыдущем способе.
  2. Переходим во вкладку «Рецензирование». Кликаем по кнопке «Защитить лист». Эта кнопка расположена в блоке инструментов «Изменения».
  3. Переход к включению блокировки листа в Microsoft Excel

    Lumpics.ru

  4. После этого открывается точно такое же окно настроек защиты листа, как и в первом варианте. Все дальнейшие действия полностью аналогичные.

Окно настроек защиты листа в Microsoft Excel

Урок: Как поставить пароль на файл Excel

Разблокировка диапазона

При нажатии на любую область заблокированного диапазона или при попытке изменить её содержимое будет появляться сообщение, в котором говорится о том, что ячейка защищена от изменений. Если вы знаете пароль и осознано хотите отредактировать данные, то для снятия блокировки вам нужно будет проделать некоторые действия.

Ячейка заблокирована в Microsoft Excel

  1. Переходим во вкладку «Рецензирование».
  2. Переход во вкладку Рецензирование в Microsoft Excel

  3. На ленте в группе инструментов «Изменения» кликаем по кнопке «Снять защиту с листа».
  4. Переход в снятие защиты с листа в Microsoft Excel

  5. Появляется окошко, в которое следует ввести ранее установленный пароль. После ввода нужно кликнуть по кнопке «OK».

Сеятие защиты в Microsoft Excel

После этих действий защита со всех ячеек будет снята.

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

Еще статьи по данной теме:

Помогла ли Вам статья?

Довольно часто в силу разных причин перед пользователями встает задача – защитить определенные элементы таблицы Эксель от возможных изменений. Например, это могут быть ячейки с формулами, или ячейки, которые участвуют в расчетах, и их содержимое нельзя корректировать. Это особенно актуально, когда доступ к таблице имеют другие лица. Ниже мы разберемся, каким образом можно справиться с поставленной задачей.

  • Включаем защиту ячеек

    • Метод 1: используем меню “Файл”

    • Метод 2: применяем инструменты вкладки “Рецензирование”

  • Снимаем защиту

  • Заключение

Включаем защиту ячеек

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

Для включения защиты выполняем следующие действия:

  1. Сначала нужно выделить все содержимое листа. Для этого щелкаем по прямоугольнику на пересечении координатных панелей. Также можно нажать комбинацию клавиш Ctrl+A (один раз, если выбрана ячейка за пределами заполненной таблицы, два раза – если выбрана ячейка внутри нее).Выделение всего листа в Эксель
  2. Правой кнопкой мыши щелкаем по любому месту выделенной области и в раскрывшемся списке выбираем “Формат ячеек”.Переход к формату ячеек в Эксель
  3. В открывшемся окне форматирования ячеек во вкладке “Защита” убираем галочку напротив опции “Защищаемая ячейка”, после чего жмем OK.Отключение защиты ячеек в Эксель
  4. Теперь любым удобным способом (например, с помощью зажатой левой кнопки мыши) выделяем область ячеек, которые хотим защитить от изменений. В нашем случае – это столбец с формулами. После этого щелчком правой кнопкой мыши по выделенному диапазону вызываем контекстное меню и снова выбираем пункт “Формат ячеек”.Переход к форматированию ячеек в Excel
  5. Перейдя во вкладку “Защита” ставим галочку напротив опции “Защищаемая ячейка” и жмем OK.Включение защиты ячеек в Excel
  6. Теперь необходимо активировать защиту листа. После этого у нас будет возможность корректировать все ячейки листа, кроме тех, которые входят в выделенный диапазон. Для этого открываем меню “Файл”.Переход в меню Файл в Эксель
  7. В правой части содержимого раздела “Сведения” нажимаем кнопку “Защитить книгу”. Откроется перечень команд, среди которых нужен вариант – “Защитить текущий лист”.Включение защиты текущего листа в Эксель через меню Файл
  8. На экране отобразятся параметры защиты листа. Напротив опции “Защитить лист и содержимое защищаемых ячеек” обязательно должна быть установлена галочка. Остальные опции ниже выбираются согласно пожеланиям пользователя (в большинстве случаев, параметры остаются нетронутыми). Для защиты листа требуется ввести пароль в специально предназначенном для этого поле (нужен будет в дальнейшем для разблокировки), после чего можно щелкнуть OK.Настройка параметров защиты листа в Эксель
  9. В следующем небольшом окошке требуется повторить ранее введенный пароль и снова нажать кнопку OK. Это мера поможет обезопасить пользователя от собственных опечаток во время установки пароля.Подтверждение пароля для защиты листа в Excel
  10. Все готово. Теперь отредактировать содержимое ячеек, для которых мы включили защиту в параметрах форматирования, не получится. Остальные элементы листа можно менять на наше усмотрение.

Метод 2: применяем инструменты вкладки “Рецензирование”

Второй метод включения защиты ячеек предполагает использование инструментов вкладки “Рецензирование”. Вот как это делается:

  1. Выполняем шаги 1-5, описанные в методе 1, т.е. снимаем защиту со всего листа и обратно устанавливаем только для выделенных ячеек.
  2. В группе инструментов “Защита” вкладки “Рецензирование” жмем кнопку “Защитить лист”.Включение защиты листа во вкладке Рецензирование в Эксель
  3. Появится уже знакомое окно с параметрами защиты листа. Дальше выполняем те же шаги, что и при реализации описанного выше метода.Настройка параметров защиты листа в Excel

Примечание: При сжатых размерах окна программы (по горизонтали) блок инструментов “Защита” представляет собой кнопку, нажатие которой раскроет список доступных команд.

Включение защиты листа во вкладке Рецензирование в Excel

Снимаем защиту

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

Ошибка при попытке редактирования защищенной ячейки в Эксель

Для снятие блокировки необходимо ввести пароль:

  1. Во вкладке “Рецензирование” в группе инструментов “Защита” жмем кнопку “Снять защиту с листа”.Снятие защиты листа в Эксель
  2. Откроется небольшое окошко с одним полем, в котором следует ввести пароль, указанный при блокировке ячеек. Нажав кнопку OK мы снимем защиту.Ввод пароля для снятия защиты листа в Excel

Заключение

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

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

Зашифровать или расшифровать выбранные ячейки с помощью VBA

Зашифровать или расшифровать выбранные ячейки с помощью Kutools for Excel хорошая идея3


Зашифровать или расшифровать выбранные ячейки с помощью VBA

Вот код VBA, который может быстро зашифровать или расшифровать выбранные ячейки в Excel.

1. Нажмите Alt + F11 ключи для отображения Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модулии вставьте ниже код VBA в новый Модули окно.

VBA: зашифровать или расшифровать выбранные ячейки.

Private Function StrToPsd(ByVal Txt As String) As Long
'UpdatebyKutoolsforExcel20151225
    Dim xVal As Long
    Dim xCh As Long
    Dim xSft1 As Long
    Dim xSft2 As Long
    Dim I As Integer
    Dim xLen As Integer
    xLen = Len(Txt)
    For I = 1 To xLen
        xCh = Asc(Mid$(Txt, I, 1))
        xVal = xVal Xor (xCh * 2 ^ xSft1)
        xVal = xVal Xor (xCh * 2 ^ xSft2)
        xSft1 = (xSft1 + 7) Mod 19
        xSft2 = (xSft2 + 13) Mod 23
    Next I
    StrToPsd = xVal
End Function
Private Function Encryption(ByVal Psd As String, ByVal InTxt As String, Optional ByVal Enc As Boolean = True) As String
    Dim xOffset As Long
    Dim xLen As Integer
    Dim I As Integer
    Dim xCh As Integer
    Dim xOutTxt As String
    xOffset = StrToPsd(Psd)
    Rnd -1
    Randomize xOffset
    xLen = Len(InTxt)
    For I = 1 To xLen
        xCh = Asc(Mid$(InTxt, I, 1))
        If xCh >= 32 And xCh <= 126 Then
            xCh = xCh - 32
            xOffset = Int((96) * Rnd)
            If Enc Then
                xCh = ((xCh + xOffset) Mod 95)
            Else
                xCh = ((xCh - xOffset) Mod 95)
                If xCh < 0 Then xCh = xCh + 95
            End If
            xCh = xCh + 32
            xOutTxt = xOutTxt & Chr$(xCh)
        End If
    Next I
    Encryption = xOutTxt
End Function
Sub EncryptionRange()
    Dim xRg As Range
    Dim xPsd As String
    Dim xTxt As String
    Dim xEnc As Boolean
    Dim xRet As Variant
    Dim xCell As Range
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Select a range:", "Kutools for Excel", xTxt, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
    xPsd = InputBox("Enter password:", "Kutools for Excel")
    If xPsd = "" Then
        MsgBox "Password cannot be empty", , "Kutools for Excel"
        Exit Sub
    End If
    xRet = Application.InputBox("Type 1 to encrypt cell(s);Type 2 to decrypt cell(s)", "Kutools for Excel", , , , , , 1)
    If TypeName(xRet) = "Boolean" Then Exit Sub
    If xRet > 0 Then
        xEnc = (xRet Mod 2 = 1)
        For Each xCell In xRg
            If xCell.Value <> "" Then
                xCell.Value = Encryption(xPsd, xCell.Value, xEnc)
            End If
        Next
    End If
End Sub

3. Затем нажмите F5 ключ для выполнения VBA, и появится диалоговое окно для выбора ячеек для шифрования. Смотрите скриншот:
документ шифровать дешифровать 1

4. Затем нажмите OK и введите пароль для зашифрованных ячеек в другом всплывающем диалоговом окне. Смотрите скриншот:
документ шифровать дешифровать 2

5. Нажмите OK, а затем в третьем диалоговом окне введите 1 чтобы зашифровать выбранные ячейки, если вы хотите расшифровать ячейки, введите 2. Смотрите скриншот:
документ шифровать дешифровать 3

6. Нажмите OK, и выбранные ячейки зашифрованы. Смотрите скриншот:
документ шифровать дешифровать 4


Зашифровать или расшифровать выбранные ячейки с помощью Kutools for Excel

С помощью вышеуказанного метода шифрования или дешифрования ячеек немного сложно, но если у вас есть Kutools for Excel установлен, вы можете использовать Зашифровать ячейки и Расшифровать ячейки утилиты, чтобы быстро это сделать.

После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:

1. Выберите ячейки, которые нужно зашифровать, и нажмите Кутулс Плюс > Зашифровать ячейки. Смотрите скриншот:
документ шифровать дешифровать 5

2. Затем введите и подтвердите пароль в Зашифровать ячейки диалоговом окне и выберите один тип шифрования в Маска раздел. Смотрите скриншот:
документ шифровать дешифровать 6

3. Нажмите Ok or Применить, и теперь выбранные ячейки зашифрованы.
документ шифровать дешифровать 7

Если вам нужно расшифровать ячейки, выделите их и нажмите Кутулс Плюс > Decrypt, и введите пароль для их расшифровки. Смотрите скриншот:

документ шифровать дешифровать 8  doc kutools зашифровать ячейки 5


Статьи, которые могут вас заинтересовать:

  • Как быстро перевернуть данные в Excel?
  • Как сгенерировать список всех возможных комбинаций из 4 цифр в Excel?
  • Как сгенерировать случайное число без дубликатов в Excel?
  • Как вставить значения в видимые / отфильтрованные ячейки только в Excel?

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Защита ячеек шифром Виженера

Парольная защита листов в Microsoft Excel давно стала притчей во языцех. В том плане, что ее, по-сути, нет. С регулярностью примерно раз в месяц я получаю вопросы по почте на тему «как мне защитить мои данные на листе Excel от просмотра/изменения?» и каждый раз не знаю что ответить. Можно, конечно, дать ссылочку на статью с подробным описанием всех способов защиты ячеек и листов в Excel, но такая защита остановит только начинающего. В сети можно найти кучу платных и бесплатных программ для взлома такой защиты тупым перебором за считанные минуты.

В какой-то момент мне это надоело и я стал искать способы более надежной защиты данных в Excel собственными силами. Самым простым и удобным оказался шифр Виженера.

Принцип шифра Виженера

Одним из самых древних и простых в реализации является шифр Цезаря, который использовал его для тайной переписки. Суть его в том, что каждая буква исходного шифруемого сообщения сдвигается в алфавите на заданное количество символов. Так, например, если сдвиг равен 3, то буква А превратится в Г, буква Б — в Д и так далее:

Шифр Цезаря

Символы в конце алфавита (Э, Ю, Я), соответственно, будут превращаться его начало (А, Б, В).

Реализовать такой шифр просто, но стойкость его невелика — найти нужное число сдвига и дешифровать сообщение можно даже прямым перебором за 20-30 итераций, что займет даже у человека не больше часа, а у современного компьютера доли секунды. Поэтому еще в 15 веке был впервые придуман, а потом в 16 веке французским дипломатом Блезом Виженером официально представлен более совершенный метод на основе шифра Цезаря, получивший впоследствии название «шифр Виженера». Его принцип в том, что каждая буква в исходном шифруемом тексте сдвигается по алфавиту не на фиксированное, а переменное количество символов. Величина сдвига каждой буквы задается ключом (паролем) — секретным словом или фразой, которая используется для шифрования и расшифровки. 

Допустим, мы хотим зашифровать фразу «КЛАД ЗАРЫТ В САДУ» используя слово ЗИМА в качестве ключа. Запишем это слово подряд несколько раз под исходной фразой:

vigenere-encription2.png

Для удобства шифрования используем так называемый «квадрат Виженера» — таблицу, где в каждой строке алфавит сдвигается на одну позицию вправо:

квадрат виженера

Если взять строку с первой буквой ключа (З) и столбец с первой буквой исходного текста (К), то на их пересечении увидим букву «Т» — это и будет первая буква нашего зашифрованного сообщения. Затем процедура повторяется для всех остальных пар букв ключа и исходного сообщения по очереди и в результате мы получаем зашифрованный вариант нашей исходной фразы:

шифр виженера результат

Заметьте, что одна и та же буква (например А) в исходном сообщений превратилась в разные буквы на выходе (Н, Й и Б), т.к. сдвиг при шифровании для них был разный. Именно поэтому вскрыть шифр Виженера простыми способами невозможно — вплоть до 19 века он считался невзламываемым и успешно использовался военными, дипломатами и шпионами многих стран, частности — конфедератами во время Гражданской войны в США.

Реализация формулами по квадрату Виженера

Если использовать готовый квадрат Виженера как в примере выше, то реализовать шифрование можно одной формулой с помощью функций ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH), как это было описано в статье про двумерный поиск в таблице. Выглядеть это может примерно так:

vigenere-encription5.png

Логика этой формулы следующая:

  • Первая функция ПОИСКПОЗ (подсвечена зеленым) ищет первую букву ключа (З) в зеленом столбце (B9:B40) и выдает порядковый номер ячейки, где она ее нашла, т.е. номер строки в квадрате Виженера по которому идет шифрование.
  • Вторая функция ПОИСКПОЗ (подсвечена розовым) аналогичным образом ищет первую букву исходного сообщения (К) в красной строке и выдает порядковый номер столбца.
  • Функция ИНДЕКС выдает содержимое ячейки из квадрата (C9:AH40) с пересечения строки и столбца с найденными номерами.

Реализация формулами по кодам символов

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

Внутри компьютера и операционной системы каждый символ имеет свой числовой код от 0 до 255 (его еще называют ASCII-кодом). Microsoft Excel имеет в своем стандартном наборе две функции, которые умеют с ними работать:

  • Функция КОДСИМВ (CODE) — выдает числовой код символа, указанного в качестве аргумента. Например КОДСИМВ(«Ж») выдаст 198.
  • Функция СИМВОЛ (CHAR) — выдает символ, соответствующий указанному в аргументе коду, т.е. наоборот СИМВОЛ(198) даст нам букву Ж. 

Для применения шифра Виженера запишем наш исходный текст и ключ друг под другом как раньше и выведем коды каждой буквы с помощью функции КОДСИМВ:

vigenere-encription6.png

Теперь сложим коды символов ключа и исходного текста, добавив функцию ОСТАТ (MOD), чтобы при превышении максимально допустимого количества символов (256) остаться в пределах 0-255:

vigenere-encription7.png

Теперь осталось использовать функцию СИМВОЛ, чтобы вывести символы по полученным кодам и сформировать зашифрованное сообщение:

vigenere-encription8.png

Само-собой, можно было бы обойтись и без дополнительных строк, уложив все функции в одну формулу для компактности:

vigenere-encription9.png

Расшифровка производится совершенно аналогично, только знак «плюс» в формуле меняется на «минус»:

vigenere-encription10.png

Для шпионских игр шифрование такими спецсимволами, конечно, не очень удобно — так и представляю себе глаза радистки Кэт при попытке передать третий и пятый символы нашей шифровки :) Но нам их, отстреливаясь из именного ТТ во время погони, на бумажке не писать, так что для наших целей — сойдет.

Макросы для шифрования-дешифрования

Ну, а теперь самое интересное. Чтобы применить шифр Виженера в реальной жизни лучше будет воспользоваться простым макросом, который проводит все описанные в предыдущем пункте операции с каждой ячейкой текущего листа автоматически. Откройте редактор Visual Basic с помощью сочетания клавиш Alt+F11 или кнопкой Visual Basic на вкладке Разработчик (Developer). Вставьте новый модуль с помощью команды меню Insert — Module и скопируйте туда текст наших макросов:

 
'Шифрование текущего листа
Sub Encrypt()
    Dim Pass$, Key$
    Pass = InputBox("Введите ключ для шифрования:")
    Key = WorksheetFunction.Rept(Pass, 100)
    
    For Each cell In ActiveSheet.UsedRange
        Out = ""
        Txt = cell.Formula
        For i = 1 To Len(Txt)
            Out = Out & Chr((Asc(Mid(Txt, i, 1)) + Asc(Mid(Key, i, 1))) Mod 256)
        Next i
        cell.Value = Out
    Next cell
End Sub

'Дешифрация текущего листа
Sub Decrypt()
    Dim Pass$, Key$
    Pass = InputBox("Введите ключ для расшифровки:")
    Key = WorksheetFunction.Rept(Pass, 100)
    
    For Each cell In ActiveSheet.UsedRange
        Out = ""
        Txt = cell.Value
        For i = 1 To Len(Txt)
            Out = Out & Chr((Asc(Mid(Txt, i, 1)) - Asc(Mid(Key, i, 1)) + 256) Mod 256)
        Next i
        cell.Formula = Out
    Next cell
End Sub
 

Первый макрос запрашивает у пользователя ключ и шифрует все ячейки текущего листа. Второй макрос производит обратную операцию дешифрования. Запустить получившиеся макросы можно с помощью сочетания клавиш Alt+F8 или кнопки Макросы (Macros) на вкладке Разработчик (Developer). Выглядеть все это может примерно так:

vigenere-encryption11.gif

Важные нюансы

  • ВНИМАНИЕ! Если вы внимательно прочитали статью, то должны четко понимать — не существует легкого способа узнать или подобрать ключ! Есть несколько методик взлома шифра Виженера, но все они весьма сложны для неспециалиста и не дают 100% гарантии. Если вы забудете ключ — потеряете данные навсегда с большой вероятностью. Если что — я вас предупредил.
  • При шифровании не нарушаются формулы, ссылки и форматирование — после дешифрации все отлично работает.
  • Если при дешифрации вы неправильно введете ключ, то получите бессмысленную «кашу» из спецсимволов вместо своего текста (т.к. сдвиг кодов будет неправильным). Тогда придется откатиться на шаг назад повторным шифрованием с тем же паролем и потом снова попробовать расшифровать документ еще раз (на этот раз используя правильный ключ).

Ссылки по теме

  • 4 способа защиты данных в Microsoft Excel
  • Суперскрытый лист в книге Excel
  • Выборочное отображение листов книги пользователям по паролю

Понравилась статья? Поделить с друзьями:
  • Чем конвертировать pdf в word программа
  • Чем заканчивается ввод формул в excel
  • Чем конвертировать pdf excel таблицы
  • Чем загрузить данных excel в 1с
  • Чем конвертировать pages в word