За все мое долгое знакомство с Microsoft Excel я видел множество примеров его использования не по прямому назначению. Его использовали и как калькулятор, и как текстовый редактор, как среду разработки и базу данных и даже как программу для расчета зарплаты. И вот сегодня я расскажу о еще одном нестандартном применении Excel, а именно — о том, как сделать из него генератор паролей.
Сгенерировать пароль в Excel можно двумя способами. Способ первый:
Генерация паролей с помощью встроенных функций
Правильный пароль должен состоять из комбинации цифр, букв разного регистра и специальных символов. В Excel для этого есть две встроенные функции:
• СИМВОЛ (CHAR в англ. варианте) — возвращает символ с заданным кодом. Например =СИМВОЛ(65) возвратит латинскую A в верхнем регистре;
• СЛУЧМЕЖДУ (RANDBETWEEN в англ. варианте) — возвращает случайное целое число, находящееся в диапазоне между двумя заданными числами. Например =СЛУЧМЕЖДУ(1;100) вернет произвольное число между между 1 и 100.
С помощью сочетания этих функций можно получить произвольный набор символов определенной длины. Разберем их по порядку, начнем с цифр.
Для получения произвольной цифры между 0 и 9 надо ввести в ячейке функцию:
=СЛУЧМЕЖДУ(0;9)
Если нужно несколько паролей, то можно захватить ячейку и протянуть ее вниз, насколько необходимо.
Можно расширить диапазон, например от 0 до 99:
=СЛУЧМЕЖДУ(0;99)
Чтобы длина пароля была неизменной, можно указать диапазон от 10 до 99:
=СЛУЧМЕЖДУ(10;99)
Ну и так насколько хватит фантазии, например:
=СЛУЧМЕЖДУ(1000;9999)
Переходим к буквам. Следующая функция вернет нам произвольную заглавную букву от A до Z:
=СИМВОЛ(СЛУЧМЕЖДУ(65;90))
А так мы получим строчные буквы от a до z:
=СИМВОЛ(СЛУЧМЕЖДУ(97;122))
Использовать кириллицу в паролях я настоятельно не рекомендую, но если очень хочется, то вот функция для заглавных А-Я:
=СИМВОЛ(СЛУЧМЕЖДУ(192;223))
и для строчных а-я:
=СИМВОЛ(СЛУЧМЕЖДУ(224;255))
Ну и не забываем про спецсимволы. Их я тоже стараюсь использовать крайне аккуратно, поскольку в различных системах они могут интерпретироваться по разному, из за чего можно поиметь немало проблем. Тем не менее, для получения спецсимволов можно воспользоваться вот такой:
=СИМВОЛ(СЛУЧМЕЖДУ(33;47))
и такой функциями:
=СИМВОЛ(СЛУЧМЕЖДУ(91;96))
Ну и теперь остается собрать все эти функции в единое целое и получить пароль. Для этого наберем нужный набор функций и объединим их с помощью амперсанда (&). Для получения пароля из 8 символов, включая буквы в разном регистре, цифры и спецсимволы, используем вот такую функцию:
=(СЛУЧМЕЖДУ(0;9)&СИМВОЛ(СЛУЧМЕЖДУ(65;90))&СИМВОЛ(СЛУЧМЕЖДУ(97;122))&СИМВОЛ(СЛУЧМЕЖДУ(33;47))
&(СЛУЧМЕЖДУ(0;9))&СИМВОЛ(СЛУЧМЕЖДУ(91;96))&СИМВОЛ(СЛУЧМЕЖДУ(65;90))&СИМВОЛ(СЛУЧМЕЖДУ(97;122)))
Вы можете комбинировать функции в различных сочетаниях, добавлять их, увеличивая длину пароля и его сложность. Однако, как вы понимаете, с помощью встроенных функций невозможно получить полностью рандомный пароль. Для этого нам придется написать собственную функцию, благо необходимый инструментарий в Excel имеется.
Генерация паролей с помощью VBA
Жмем ALT + F11 для открытия Microsoft Visual Basic for applications. Затем в меню выбираем Insert — Module, и в открывшееся окно вставляем следующий код:
Function ПАРОЛЬ (Optional ДЛИНА As Integer = 8, Optional СИМВ As Boolean = False) As String
Dim i As Integer
Dim simb As String * 1
Dim arrsimb As Integer
Dim pass As String
Randomize
If СИМВ = False Then
For i = 1 To ДЛИНА
arrsimb = Int(Rnd * 3)
Select Case arrsimb
Case 0
simb = Int(Rnd * 9)
Case 1
simb = Chr(Int((90 - 65 + 1) * Rnd + 65))
Case 2
simb = Chr(Int((122 - 97 + 1) * Rnd + 97))
End Select
pass = pass & simb
Next
Else
For i = 1 To ДЛИНА
simb = Chr(Int((126 - 33 + 1) * Rnd + 33))
pass = pass & simb
Next
End If
ПАРОЛЬ = pass
End Function
Сохраняем код и закрываем редактор. Теперь мы имеем собственную функцию с двумя необязательными аргументами — длина пароля (по умолчанию 8 символов) и использование спецсимволов (по умолчанию отключено). Для ее использования с дефолтными параметрами просто вводим в ячейке:
=ПАРОЛЬ()
Если хотим изменить длину пароля, например до 14 символов, то добавляем параметр:
=ПАРОЛЬ(14)
Ну и включаем использование спецсимволов:
=ПАРОЛЬ(14;1)
Таким образом можно генерировать любое количество произвольных паролей любой длины и сложности.
В заключение напомню, что при генерации пароля любым способом при каждом изменении листа данные в ячейках изменяются. Поэтому если вы хотите сохранить полученные пароли, то их надо скопировать из Excel в любой текстовый редактор, а уже потом можно перенести обратно в Excel в виде статических данных.
Спасибо за то, что создали этот сайт и поддерживаете его. В закладках. Очень много ценной и, главное, правильно свернутой нужной информации. Удачи!