Как сделать генератор паролей в excel?

Сегодня мы создаем генератор паролей в Excel.

Зачем нам это нужно?

Генератор паролей нужен для быстрого создания устойчивых паролей заданной длины.

Конечно, можно придумать пароль и самому, и даже длинный и даже сложный, но наша задача, сделать это в Excel. Это хороший комплексный практический пример, в ходе работы над которым, мы задействуем функции: СЛУЧМЕЖДУ, ИНДЕКС, СЦЕПИТЬ, СИМВОЛ и логическую функцию ЕСЛИ. Так же мы используем элементы управления «Флажок» и «Переключатель».

В основе нашей разработки будет лежать генератор случайных чисел, представленный в Excel функцией =СЛЧИС(), и в частности его разновидность — функция =СЛУЧМЕЖДУ(нижн_граница; верхн_граница), которая возвращает случайное число между двумя заданными. Соответственно нижней и верхней границей числового диапазона.

В дополнение к этой функции можно использовать функцию =СИМВОЛ(число), которая возвращает знак в соответствии с заданным кодом (от 1 до 255) используя таблицу знаков (ANSI).

Например, чтобы сгенерировать случайным образом латинские заглавные буквы, достаточно применить формулу:

=СИМВОЛ(СЛУЧМЕЖДУ(65;90))

Где 65 и 90 соответственно нижняя и верхняя граница диапазона чисел кода, которому соответствуют заглавные латинские буквы A-Z по таблице знаков ANSI.

Для того чтобы получить шестизначный пароль из заглавных латинских букв необходимо использовать функцию =СЦЕПИТЬ(текст1; текст2;…), которая объединяет несколько текстовых строк в одну. В нашем случае это будет выглядеть так:

=СЦЕПИТЬ(СИМВОЛ(СЛУЧМЕЖДУ(65;90));СИМВОЛ(СЛУЧМЕЖДУ(65;90));СИМВОЛ(СЛУЧМЕЖДУ(65;90));СИМВОЛ(СЛУЧМЕЖДУ(65;90));СИМВОЛ(СЛУЧМЕЖДУ(65;90));СИМВОЛ(СЛУЧМЕЖДУ(65;90)))

Нажимая клавишу F9, генерируем пароли вида: MFVYZW, YHCLSD, BNLXEW и т.д.

Однако этот простой способ имеет ряд недостатков. Например, набор необходимых нам символов для пароля в таблице знаков может располагаться в несмежных, диапазонах. Так цифры от 0 до 9 имеют код 48 до 57, строчные латинские буквы – код с 97 до 122.  Если мы захотим составить пароль из цифр, и латинских букв с разным регистром или захотим исключить сходные по написанию буквы (например, строчную l и заглавную I) то столкнёмся с определенными трудностями в использовании приведенного выше метода.

Методом свободным от указанных недостатков будет создание собственной таблицы символов.

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

Для этого мы будем использовать функцию =ИНДЕКС(массив; номер_строки; ), которая  возвращает значение элемента таблицы или массива, заданного номером строки и номером столбца.

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

В файле примера данная таблица располагается в диапазоне А1:А86, при чем цифры от 0 до 9 занимают диапазон А1:А10, латинские строчные буквы – диапазон А11:А35, латинские заглавные буквы – диапазон А36:А60, набор спецсимволов – диапазон А61:А86. Строчная l и заглавная I исключены.

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

Так же, мы добавим возможность выбора длины пароля – 6, 8, 10, 12 символов.

Для удобства, присвоим нашей таблице символов находящейся в диапазоне А1:А86 имя «таблица_символов».

Итак, для генерации случайного знака из набора цифр и строчных латинских букв формула будет выглядеть следующим образом:

=ИНДЕКС(таблица_символов;СЛУЧМЕЖДУ(1;35);1)

Для генерации случайного знака из набора цифр, строчных и заглавных латинских букв:

=ИНДЕКС(таблица_символов;СЛУЧМЕЖДУ(1;60);1)

Для генерации случайного знака из набора цифр, строчных и заглавных латинских букв, а также спецсимволов:

=ИНДЕКС(таблица_символов;СЛУЧМЕЖДУ(1;86);1)

Эта формула возвращает символ, находящийся в выбранной случайным образом строке нашего массива состоящего из 1 столбца и 86 строк.

Теперь добавим механизм выбора сложности пароля. Для этого мы будем использовать элемент управления «Флажок», который в установленном положении принимает значение ИСТИНА.

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

Добавить флажок на лист можно через вкладку Разработчик→ группа Элементы управления→ команда Вставить→ Элементы управления формы → Флажок

Установим связь первого флажка с ячейкой Е7, а связь второго флажка – с ячейкой Е8.

Установить связь можно щелкнув правой кнопкой мыши на элементе управления и, в появившемся контекстном меню выбрать пункт Формат объекта → вкладка Элемент управления→ поле Связь с ячейкой.

Тогда формула выбора знака случайным образом с учетом сложности пароля будет выглядеть следующим образом:

=ИНДЕКС(таблица_символов;ЕСЛИ($E$8=ИСТИНА;СЛУЧМЕЖДУ(1;86);ЕСЛИ($E$7=ИСТИНА;СЛУЧМЕЖДУ(1;60);СЛУЧМЕЖДУ(1;35)));1)

Это генерация только одного знака, а мы задались целью сделать 4 варианта – 6, 8, 10, и 12 символов.

Для того, чтобы не повторять эту формулу 36 раз в одной ячейке (длина пароля в нашем примере 6, 8, 10, 12 символов, соответственно все варианты 6+8+10+12=36), введем ее в 12 разных ячеек, которые потом будем сцеплять. У нас это будет диапазон В1:М1.

Теперь при каждом нажатии клавиши F9 мы будем получать 12 различных знаков, находящихся в 12 разных ячейках.

Для управления длиной пароля, мы будем использовать элемент управления «Переключатель», который в отличие от «Флажка» может принимать только одно из возможных значений среди таких же элементов управления. Флажок может быть, как снят, так и установлен.

Добавим в нашу форму четыре переключателя, соответствующие длине пароля в 6, 8, 10 или 12 символов, и установим связь этих переключателей с ячейкой Е10.

Тогда в итоговой ячейки вывода пароля будет следующая формула:

=ЕСЛИ($E$10=1;СЦЕПИТЬ(B1;C1;D1;E1;F1;G1);ЕСЛИ($E$10=2;СЦЕПИТЬ(B1;C1;D1;E1;F1;G1;H1;I1);ЕСЛИ($E$10=3;СЦЕПИТЬ(B1;C1;D1;E1;F1;G1;H1;I1;J1;K1);СЦЕПИТЬ(B1;C1;D1;E1;F1;G1;H1;I1;J1;K1;L1;M1))))

Далее выполняем некоторые организационные мероприятия для защиты листа и придания ему надлежащего вида. С этой целью, мы устанавливаем защиту ячеек на всем листе, кроме ячеек Е7, Е8 и Е10 (там где меняются параметры, связанные с установкой флажков и переключателей). Все наши вспомогательные данные на листе красим в белый цвет (теперь у нас не видно ни нашу таблицу символов, ни поля генерации знаков пароля), убираем линии сетки на вкладке Вид и устанавливаем защиту листа.

Скрыть данные на листе можно, также, другим способом. Формат ячеек, вкладка Число, выбираем Все форматы, справа а поле Тип ставим три знака точки с запятой «;;;» и нажимаем ОК.

как сделать генератор паролей в excel

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

Скачать

Иногда в работе некоторых специалистов (IT-администраторов, инженеров и др.) возникает ситуация, когда нужно быстро создать много паролей для новых пользователей, т.е. сгенерировать случайные наборы символов.

Сделать это в Excel можно при помощи пары простых функций:

  • функция СЛУЧМЕЖДУ (RANDBETWEEN) – генерирует случайное число в заданном диапазоне;
  • функция СИМВОЛ (CHAR) – выводит символ с заданным кодом.

По внутренней компьютерной кодировке английские прописные буквы имеют коды символов с 65 по 90, строчные – с 97 по 122. Поэтому, например, формула =СИМВОЛ(СЛУЧМЕЖДУ(65;90)) будет выводить случайную прописную букву английского алфавита. Соответственно, если нам нужна строка из таких символов, то необходимо использовать несколько таких функций, склеенных с помощью символа &.

как сделать генератор паролей в excel

Как при помощи простых функций Excel создать генератор паролей

В английском варианте это будет =CHAR(RANDBETWEEN(65;90)).

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 
Public Function GeneratePassword(Optional Lenght As Integer = 8) 	For s = 1 To Lenght     	choice = Int(Rnd * 3)         If choice = 0 Then         	nextsymbol = Int(Rnd * 9)         End If         If choice = 1 Then         	nextsymbol = Chr(Int((90 - 65 + 1) * Rnd + 65))         End If         If choice = 2 Then         	nextsymbol = Chr(Int((122 - 97 + 1) * Rnd + 97))         End If         PassTxt = PassTxt & nextsymbol     Next s     GeneratePassword = PassTxt End Function

Public Function GeneratePassword(Optional Lenght As Integer = 8) For s = 1 To Lenght choice = Int(Rnd * 3) If choice = 0 Then nextsymbol = Int(Rnd * 9) End If If choice = 1 Then nextsymbol = Chr(Int((90 — 65 + 1) * Rnd + 65)) End If If choice = 2 Then nextsymbol = Chr(Int((122 — 97 + 1) * Rnd + 97)) End If PassTxt = PassTxt & nextsymbol Next s GeneratePassword = PassTxt End Function

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

как сделать генератор паролей в excel

Проще будет использовать специальную макрофункцию

Привет!

Наверняка те, кто давно пользуется интернетом, имеют свои излюбленные сервисы для генерации паролей. Но всегда ли есть смысл таковым доверять?

С одной стороны, большинство владельцев подобных сервисов желает предоставить быстрый вариант получить ворох паролей без излишней головной боли. Да что там, у меня тоже подобный есть. В отличие от некоторых, мой работает исключительно на JavaScript. Это значит, что вы можете открыть ссылку в приватной вкладке, отключить интернет, сгенерировать необходимое число паролей, сохранить их, после чего закрыть вкладку и включить интернет. 99+% гарантии, что созданные пароли будут только вашими, за исключением случая, когда в системе уже сидит какой-то зловред и собирает данные.

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

как сделать генератор паролей в excel

Если всякие формулы не интересны, прокачивать свой скилл не видите смысла, и вообще, с Экселем работаете постольку-поскольку, можете сразу скачать готовый файлик. И после этого будете твёрдо уверены, что полученные пароли только ваши.

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

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

Для начала, откроем Excel и создадим новый файл. В первом столбце пишем используемые символы, по одному в ячейке:

a
b
c
и т. д.

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

В ячейке D1 осуществляется поиск конца данных (используемых символов). Для этого пишем такую формулу:

=ПОИСКПОЗ("";A1:A256;-1)

Думаю, 256 символов более, чем достаточно.

Теперь генерируем ссылку на диапазон всех символов пароля. В D2 пишем такую конструкцию:

="$A$1:$A$"&D1

Символ амперсанда — & — используется для сцепки строковых значений. Первое значение задаём явно, а второе — это содержимое ячейки D1.

Теперь приступим непосредственно к получению случайных символов из диапазона. Сами пароли будут формироваться в столбце B.

Сперва инициализируем ячейку B1 с помощью формулы:

=ИНДЕКС(ДВССЫЛ($D$2);СЛУЧМЕЖДУ(1;$D$1);1)

Разберём каждую из трёх функций:

  1. ДВССЫЛ(ячейка) — возвращает ссылку на диапазон, заданный в ячейке. Зачем это нужно — ниже.
  2. СЛУЧМЕЖДУ(от;до) — возвращает случайное число в диапазоне от (в нашем случае 1, т. к. символы пароля находятся в столце A, начиная со строки ) и до (значение из ячейки D1, в которой нашли окончание данных).
  3. ИНДЕКС(массив;строка;столбец) — возвращает значение ячейки из элемента массив (диапазон из ячейки D2, см. 1), находящееся на пересечение строки (случайное значение, см. 2) и столбца (всегда 1, т. к. символы пароля расположены в одном столбце).

Результатом работы этой конструкции будет один символ из столбца A.

Ячейка B2 будет использовать содержимое B1 плюс один случайный символ:

=B1&ИНДЕКС(ДВССЫЛ($D$2);СЛУЧМЕЖДУ(1;$D$1);1)

Здесь видим уже знакомую сцепку строк: содержимое B1 и новый случайный символ.

Теперь растягиваем формулу из ячейки B2 вниз, на сколько нужно.

как сделать генератор паролей в excel

Забавно, что программная нумерация строк показывает и длину пароля в соответствующей ячейке столбца B. Нужен пароль длиной 16 символов? Щёлкаем мышкой на B16 и копируем пароль в буфер (Ctrl-C).
Нужно обновить пароли — щёлкаем на любой ячейке и нажимаем клавишу F2 (режим редактирования ячейки), затем .

P. S. Статья скорее является примером работы с Экселем, нежели действительно необходимой программой. Хотя, кто знает, может кто-то решит использовать файл по прямому назначению, для создания паролей.

P. P. S. Если возникли вопросы по используемым формулам, задавайте в комментариях. Постараюсь помочь.

Автор публикации

1 892

не в сети 13 часов

x64 (aka andi) Комментарии: 2752Публикации: 385Регистрация: 02-04-2009

(

голосов, в среднем:

из 5)

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

Онлайн-сервисы для генерации паролей

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

Генерация паролей в Excel при помощи формул

Используя стандартные функции Excel, такие, как СЛЧИС, СЛУЧМЕЖДУ, СИМВОЛ, ЦЕЛОЕ и другие, можно создать функции для генерации паролей разной степени сложности. В сети встречаются различные способы реализации решения этой задачи. Для создания пароля из 6 символов, состоящего из латинских букв, цифр и знаков можно использовать, например, формулу:

=СЦЕПИТЬ(СИМВОЛ(СЛУЧМЕЖДУ(33;126)); СИМВОЛ(СЛУЧМЕЖДУ(33;126)); СИМВОЛ(СЛУЧМЕЖДУ(33;126)); СИМВОЛ(СЛУЧМЕЖДУ(33;126)); СИМВОЛ(СЛУЧМЕЖДУ(33;126)); СИМВОЛ(СЛУЧМЕЖДУ(33;126)))

Функция VBA для генерации простых паролей

  Function GetPassword(lenght As Integer) As String      Dim i As Integer      Dim simbol As String      Dim password As String      Randomize          For i = 1 To lenght              simbol = Chr(Int((126 - 33 + 1) * Rnd + 33))              password = password & simbol          Next      GetPassword = password  End Function  

Генератор паролей заданной сложности

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

как сделать генератор паролей в excel

надстройка для генерации паролей разной сложности

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

Видео по работе с надстройкой