Инструкция по самостоятельному написанию генерации пароля в 8.3.
Может кому-нибудь пригодится, т.к. весь материал на ИС за монетку
а делать-то на самом деле нечего
Может кому-нибудь пригодится, т.к. весь материал на ИС за монетку
а делать-то на самом деле нечего
Для жадных и ленивых, как я!
Всё очень просто
Цитата из справки 1С
«Длина не менее 7 символов; Содержит не менее 3-х типов символов из перечисленных ниже:
— Заглавные буквы;
— Строчные буквы;
— Цифры;
— Специальные символы;
— Не совпадает с именем пользователя;
— Не является последовательностью символов.»
Для примера я использовал только заглавные и строчные буквы латинского алфавита и цифры
Процедура Пуск()
ГСЧ = Новый ГенераторСлучайныхЧисел();
//здесь в скобках можно передать число (инициализацию последовательности случайных чисел определённым числом), а можно и не передавать (генератор случайных чисел инициализируется временем работы операционной системы с момента старта)
//Что всё это значит?
//Это значит, что для ГСЧ = Новый ГенераторСлучайныхЧисел(2025) будет своя уникальная последовательность случайных чисел и она статична.
//Если использовать код, представленный ниже, то для 2025 это последовательность "sfBjgZR" и такая последовательность будет постоянна;
//Так же для уникальности я всегда использую ТекущаяУниверсальнаяДатаВМиллисекундах(), но, повторюсь, его можно не указывать
Пароль = "";
Неиспользуемые = ":<=>?@;[]#k8SjZc9Dxk_`"; //мои исключения
Пока СтрДлина(Пароль) < 7 Цикл
НекийСимвол = Символ(ГСЧ.СлучайноеЧисло(48, 122));
//Сначала получаем число из диапазона между 48 и 122
//И получаем его символ по ASCII (см.таблицу)
Если Найти(Неиспользуемые, НекийСимвол) > 0 Тогда//проверка на исключения
Продолжить;
КонецЕсли;
Пароль = Пароль + НекийСимвол;
КонецЦикла;
Сообщить(Пароль);
КонецПроцедуры//Пуск()
Не знаю, как Вам , но я не люблю многозначности.
Намного проще примерно такой код с аналогичной функциональностью
Показать
+ В догонку. И еще мне постоянно не везет. Не хватало, чтобы у меня еще цикл назначения пароля выполнялся несколько секунд. 😉
Из практики: Исключать надо больше — похожие символы — 1, l, 0, O и т.п.
(3) a_titeev, +100500 постоянно проблемы с такими ситуациями
Это те самые пароли, которые на стикерах к мониторам приклеивают? 🙂
А зачем для 1с выдумывать пароли с разным регистром букв, если для авторизации в самой 1с это не важно? Все равно все приводит при проверке к верхнему регистру.
(6) pumbaE, Откуда инфа? 🙂 Поделитесь, если не секрет 🙂
Я бы ещё исключил J, G и Q — в моей практике в них тоже путаются.
Вообще-то лучше не исключать неиспользуемые символы, а задать строку ДОПУСТИМЫХ символов и с помощью ГСЧ выбирать из нее.
(7) dj_serega, в таблице users есть два поля, в которых два sha хранятся от паролей, второе это «Врег(Парол)». Проверяется очень просто, ставите пароль с верхним регистром, пробуете войти с теми же буквами только в нижнем регистре и в без проблем заходите.
А можно так, сделать обработку для генерации паролей
Показать
Тем самым это расширяет возможности использования символов, длину и количество паролей выбирает пользователь. Удобно.
Информация взята с сайтаУроки 1с . Это не реклама.
(10) pumbaE, надо же, действительно!
Если задаться целью генерировать качественные пароли, то генерируем случайный пароль на три символа короче, отдельно генерируем один символ в верхнем регистре, одну цифру и один спецсимвол и вставляем каждый из них в случайную позицию промежуточного результата. Или вообще определяем минимальное количество символов из каждой группы.
Кстати, 1С не запрещает использование пробела в качестве парольного символа, о чем любители брутфорса могут и не догадаться. Да и при использовании сложного пароля, один пробел в середине не вызовет особых неудобств, считаю.
А еще есть русские буквы )
(10) pumbaE, проверил, действительно)
На прошлой работе пару лет вводил пароль с двумя заглавными буквами в двух словах))
Из опыта создания паролей изпользую следующий метод:
Берутся три случайный цифры, берутся первые три буквы из слов предложения для запоминания, которое может состоять из трёх и более случайных слов и любой символ синтаксиса.
Пример: 303 Новых Кашалота Помыли Хомут ! — знак восклицания, например. Пароль будет выглядеть так: 303YjdRfiGjv{jv!
С одной стороны, оно так: человек человеку друг, коллега, и змея подколодная….
С другой — надо в планировщик задание на запуск от имени пользователя воткнуть…
С третьей, таблица Users (условное название) и подменить можно…
Но за мысль спасибо, схомячил.
Спасибо за хорошую статью, взял пример Вашего кода, буду делать 😉