Powershell: Генерация уникальных паролей
При создании учетных записей, необходимо задавать им уникальный пароль, соответствующий заданным требованиям информационной системы, политики информационной безопасности и других регламентных документов. Бывают конечно случаи, когда всем назначают пароль Password, но думаю таких с каждым годом все меньше. Традиционный способ - это набирать на клавиатуре псевдослучайную последовательность символов, которая по рекомендациям должна отвечать следующим требованиям:
В современных тенденциях, при создании новых учетных записей, пароль уже, как правило, не генерируется человеком, а используются автоматизированные средства по автоматической генерации паролей, исходя из заданных требований.
Здесь приходят на помощь системы:
у комании Microsoft в пространстве имен System.Web. Security, есть Class Membership, в котором есть метод Membership.GeneratePassword(Int32, Int32). Этот метод генерирует случайный пароль указанной длины. У этого метода 2 параметра:
1. Число символов в генерируемом пароле. Допустимый диапазоне от 1 до 128.
2. Минимальное число не буквенно-цифровых символов (например, @, #, !, %, & и т. д.) в создаваемом пароле (но не более чем значение первого параметра).
Используя это метод в PowerShell весь скрипт генерации пароля из 10 символов с минимум двумя спецсимволами будет состоять всего из двух строк:
В случаереализации автоматического создание учетных записей, скрипт можно преобразовать в функцию, и уже вызывать функцию с параметрами:
- Мимнимальная длина пароля - не менее и\или не более опеределенного количества символов.
- Пароль должен содержать (как правило 3 из 4х наборов)
- малые буквы латинского алфавита (a-z),
- заглавные буквы латинского алфавита (A-Z),
- арабские цифры (0-9)
- специальные символы
( . , : ; ? ! * + % - < > @ [ ] { } / \ _ {} $ # )
- Быть уникальным для каждой учетной записи
- Периодически изменяться, либо по истечении времени, либо при компрометации
В современных тенденциях, при создании новых учетных записей, пароль уже, как правило, не генерируется человеком, а используются автоматизированные средства по автоматической генерации паролей, исходя из заданных требований.
Здесь приходят на помощь системы:
- управления жизненным циклом учетных записей
- online генерации паролей
- самописное ПО
- скрипты
у комании Microsoft в пространстве имен System.
1. Число символов в генерируемом пароле. Допустимый диапазоне от 1 до 128.
2. Минимальное число не буквенно-цифровых символов (например, @, #, !, %, & и т. д.) в создаваемом пароле (но не более чем значение первого параметра).
Используя это метод в PowerShell весь скрипт генерации пароля из 10 символов с минимум двумя спецсимволами будет состоять всего из двух строк:
Add-Type -AssemblyName System.Web
[System.Web.Security.Membership]::GeneratePassword(10, 2)
Если необходимо чуть более гибкое решение, с генерацией бОльшего количества паролей. то скпирт можно слегка модернизировать. Параметры вынести в переменные, и задать генерацию нескольких паролей, то скрипт преобразуется следубющим образом:Add-Type -AssemblyName System.Web
$NumberOfCharacters = 15 # Количество символов в пароле
$NumberOfSpecialCharacters=1 # Минимальное Количество спец символов в пароле
$NumberOfPasswords=10 # Количество паролей
1..$NumberOfPasswords| % {[System.Web.Security.Membership]::GeneratePassword($NumberOfCharacters,$NumberOfSpecialCharacters)}
В случаереализации автоматического создание учетных записей, скрипт можно преобразовать в функцию, и уже вызывать функцию с параметрами:
add-type -AssemblyName System.Web
function GeneratePassword{
param(
[int]$NumberOfCharacters = 12, # Количество символов пароле (по умолчанию 12)
[int]$NumberOfSpecialCharacters = 1 # МИНИМАЛЬНОЕ количество спецсимволов в пароле (по умолчанию 1)
)
[System.Web.Security.Membership]::GeneratePassword($NumberOfCharacters,$NumberOfSpecialCharacters)
}
GeneratePassword 20
Похожие статьи:
22 июль 2020, Среда
ИБ: Требования к защите персональных данных.
30 апрель 2019, Вторник
Отключение UAC (User Account Control) в Windows?
13 январь 2020, Понедельник
SQL: Восстановление доступа к инстансу SQL Server без перезапуска
13 декабрь 2017, Среда
Как сбросить пароль root для MySQL в среде Windows
14 ноябрь 2017, Вторник
Как сбросить пароль root для MySQL в среде Linux
Комментарии: