Генерация паролей 1С 8.3 (код, инструкция)

22.07.16

Администрирование - Пароли

Инструкция по самостоятельному написанию генерации пароля в 8.3. Может кому-нибудь пригодится, т.к. весь материал на ИС за монетку а делать-то на самом деле нечего

Для жадных и ленивых, как я!

Всё очень просто

Цитата из справки 1С
"Длина не менее 7 символов; Содержит не менее 3-х типов символов из перечисленных ниже:
    -    Заглавные буквы;
    -    Строчные буквы;
    -    Цифры;
    -    Специальные символы;
    -    Не совпадает с именем пользователя;
    -    Не является последовательностью символов."

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

Процедура Пуск()
ГСЧ = Новый ГенераторСлучайныхЧисел();
//здесь в скобках можно передать число (инициализацию последовательности случайных чисел определённым числом), а можно и не передавать (генератор случайных чисел инициализируется временем работы операционной системы с момента старта)
//Что всё это значит?
//Это значит, что для ГСЧ = Новый ГенераторСлучайныхЧисел(2016) будет своя уникальная последовательность случайных чисел и она статична.
//Если использовать код, представленный ниже, то для 2016 это последовательность "sfBjgZR" и такая последовательность будет постоянна;
//Так же для уникальности я всегда использую ТекущаяУниверсальнаяДатаВМиллисекундах(), но, повторюсь, его можно не указывать

Пароль = "";
Неиспользуемые = ":<=>?@;[\]^_`"; //мои исключения
Пока СтрДлина(Пароль) < 7 Цикл
    НекийСимвол = Символ(ГСЧ.СлучайноеЧисло(48, 122));
//Сначала получаем число из диапазона между 48 и 122
//И получаем его символ по ASCII (см.таблицу)
    Если Найти(Неиспользуемые, НекийСимвол) > 0 Тогда//проверка на исключения
        Продолжить;
    КонецЕсли;
    Пароль = Пароль + НекийСимвол;
КонецЦикла;        
Сообщить(Пароль);

КонецПроцедуры//Пуск()

 

Вступайте в нашу телеграмм-группу Инфостарт

генерация пароля пароль паролей 8.3

См. также

Роли и права Пароли Инструменты администратора БД Системный администратор Программист 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Дополнительная обработка для работы с пользователями БСП и ИБ. Ключевые возможности: - Быстрый просмотр пользователей и главных свойств - Запуск приложения под любым пользователям базы данных - Поиск и исправления узких мест в безопасности - Групповое редактирование пользователей - Быстрое копирование прав доступа и групп от пользователя к пользователю Подходит для любой конфигурации с БСП на управляемых формах для клиент-серверных баз и файловых.

1 стартмани

07.07.2025    1792    22    FFX_Eka    5    

12

Пароли Системный администратор Программист 1С v8.3 Россия Абонемент ($m)

Программа позволяет хранить пароли в зашифрованном виде.

1 стартмани

30.06.2025    527    2    user1802663    18    

3

Рефакторинг и качество кода Информационная безопасность Пароли Программист 1С v8.3 Россия Абонемент ($m)

Представьте ситуацию: вы пишете обработку для отправки email-уведомлений клиентам. Чтобы подключиться к серверу почты, вам нужны: логин, пароль, SMTP-адрес. Что делает большинство программистов?

1 стартмани

23.06.2025    1522    markbraer    8    

3

Информационная безопасность Математика и алгоритмы Пароли Программист 1С v8.3 1С:Библиотека стандартных подсистем Абонемент ($m)

Реализация алгоритма TOTP-аутентификации на языке 1С, включая создание QR-кода для добавления в приложения-аутентификаторы

1 стартмани

29.05.2025    911    Octopus    1    

10

Пароли Системный администратор Программист 1С v8.3 Управляемые формы Россия Абонемент ($m)

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

1 стартмани

07.05.2025    630    0    SVLong    0    

2

Пароли Программист 1С v8.3 Россия Казахстан Абонемент ($m)

Временная смена пароля для входа под пользователем. Позволяет проверить работоспособность обработки под пользователем "здесь и сейчас".

1 стартмани

25.04.2025    1004    7    el_turist    7    

6

Пароли Системный администратор Программист 1С v8.3 Управляемые формы 1C v8.2 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

В конфигураторе можно настроить Политики паролей пользователей. И настроенная таким образом политика работает для всего списка пользователей, без исключения. А что делать, если надо настроить отдельную политику для определенного пользователя? Оказывается, можно, но только программным способом. Эта обработка позволяет редактировать список политик применяемых к паролям пользователей, а также редактировать список пользователей, к паролям которых применяется выбранная политика. Управляемые и обычные формы.

1 стартмани

31.03.2025    820    6    user969845    0    

1

Пароли 1С v8.3 1C:Бухгалтерия Абонемент ($m)

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

3 стартмани

21.01.2025    2467    4    SerVer1C    4    

19
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Ovrfox 14 22.07.16 15:42 Сейчас в теме
Не знаю, как Вам , но я не люблю многозначности.
Намного проще примерно такой код с аналогичной функциональностью
Процедура Пуск()
ГСЧ = Новый ГенераторСлучайныхЧисел();

Пароль = "";
ИспользуемыеСимволы = ":<=>?@;[\]^_`01243456789AQWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm";
Н = СтрДлина(ИспользуемыеСимволы );
Пока СтрДлина(Пароль) < 7 Цикл
    НекийСимвол = Подстрока(ИспользуемыеСимволы ,(ГСЧ.СлучайноеЧисло(1, Н)),1);
    Пароль = Пароль + НекийСимвол;
КонецЦикла;        
Сообщить(Пароль);

КонецПроцедуры//Пуск()
Показать
METAL; matashin; ErrorEd88; sapervodichka; Емельянов Алексей; +5 Ответить
2. Ovrfox 14 22.07.16 15:45 Сейчас в теме
+ В догонку. И еще мне постоянно не везет. Не хватало, чтобы у меня еще цикл назначения пароля выполнялся несколько секунд. ;)
3. a_titeev 34 22.07.16 17:56 Сейчас в теме
Из практики: Исключать надо больше - похожие символы - 1, l, 0, O и т.п.
METAL; zqzq; alex-l19041; dj_serega; odin-7610; +5 Ответить
4. odin-7610 27.07.16 08:34 Сейчас в теме
(3) a_titeev, +100500 постоянно проблемы с такими ситуациями
Емельянов Алексей; +1 Ответить
5. dmt 69 27.07.16 08:45 Сейчас в теме
Это те самые пароли, которые на стикерах к мониторам приклеивают? :-)
NazarovV; +1 Ответить
6. pumbaE 27.07.16 16:54 Сейчас в теме
А зачем для 1с выдумывать пароли с разным регистром букв, если для авторизации в самой 1с это не важно? Все равно все приводит при проверке к верхнему регистру.
Артано; a_a_burlakov; +2 2 Ответить
7. dj_serega 395 27.07.16 17:32 Сейчас в теме
(6) pumbaE, Откуда инфа? :) Поделитесь, если не секрет :)
10. pumbaE 28.07.16 09:06 Сейчас в теме
(7) dj_serega, в таблице users есть два поля, в которых два sha хранятся от паролей, второе это "Врег(Парол)". Проверяется очень просто, ставите пароль с верхним регистром, пробуете войти с теми же буквами только в нижнем регистре и в без проблем заходите.
cargobird; +1 Ответить
12. a_a_burlakov 290 28.07.16 11:01 Сейчас в теме
(10) pumbaE, надо же, действительно!
14. cargobird 320 29.07.16 14:16 Сейчас в теме
(10) pumbaE, проверил, действительно)
На прошлой работе пару лет вводил пароль с двумя заглавными буквами в двух словах))
8. v3rter 27.07.16 17:57 Сейчас в теме
Я бы ещё исключил J, G и Q - в моей практике в них тоже путаются.
9. viptextil 42 28.07.16 08:45 Сейчас в теме
Вообще-то лучше не исключать неиспользуемые символы, а задать строку ДОПУСТИМЫХ символов и с помощью ГСЧ выбирать из нее.
11. nagaitseff 181 28.07.16 09:29 Сейчас в теме
А можно так, сделать обработку для генерации паролей

КоличествоПаролей = 0
ВвестиКоличество(КоличествоПаролей); //ввели количество паролей

ДлинаПаролей = 0;
ВвестиЧисло(ДлинаПаролей); // ввели длину паролей

//строка из которой будем брать символы для паролей
Алфавит = "1234567890_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV­WXYZ"; //символы для генерации паролей

ГСЧ = Новый ГенераторСлучайныхЧисел(); // создаем генератор случайных чисел
ВсеПароли = ""; //в этой строке накапливаем все пароли

//организуем цикл нужное количество раз
Для А = 1 По КоличествоПаролей Цикл
	НовыйПароль = ""; // сюда накапливаем текущий пароль
	//цикл по требуемому количеству символов
	Для Б = 1  По ДлинаПаролей Цикл
		Индекс = ГСЧ.СлучайноеЧисло(1, (СтрДлина(Алфавит));
		НовыйПароль = НовыйПароль + Сред(Алфавит, Индекс, 1);
	КонецЦикла;
	ВсеПароли = ВсеПароли + НовыйПароль + Символы.ПС;
КонецЦикла;


ОткрытьЗначение(ВсеПароли); // покажем пользователю все пароли
Показать


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

Информация взята с сайта Уроки 1с. Это не реклама.
13. v3rter 28.07.16 11:24 Сейчас в теме
Если задаться целью генерировать качественные пароли, то генерируем случайный пароль на три символа короче, отдельно генерируем один символ в верхнем регистре, одну цифру и один спецсимвол и вставляем каждый из них в случайную позицию промежуточного результата. Или вообще определяем минимальное количество символов из каждой группы.

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

А еще есть русские буквы )
Емельянов Алексей; dj_serega; serg_infostart; +3 Ответить
15. mootriskoff 31.07.16 07:17 Сейчас в теме
Из опыта создания паролей изпользую следующий метод:
Берутся три случайный цифры, берутся первые три буквы из слов предложения для запоминания, которое может состоять из трёх и более случайных слов и любой символ синтаксиса.
Пример: 303 Новых Кашалота Помыли Хомут ! - знак восклицания, например. Пароль будет выглядеть так: 303YjdRfiGjv{jv!
16. nickVZ 10 20.09.16 01:13 Сейчас в теме
С одной стороны, оно так: человек человеку друг, коллега, и змея подколодная....
С другой - надо в планировщик задание на запуск от имени пользователя воткнуть...
С третьей, таблица Users (условное название) и подменить можно...
Но за мысль спасибо, схомячил.
17. klel@list.ru 26.10.18 11:38 Сейчас в теме
Спасибо за хорошую статью, взял пример Вашего кода, буду делать ;)
18. dour-dead 271 15.06.19 18:56 Сейчас в теме
ПользователиСлужебный.СоздатьПароль(ПользователиСлужебный.ПараметрыПароля(6, Истина))
VVi3ard; user712340_lost-s0u1; METAL; cheburashka; DinJak; SAGerasimov; marilb; slvovich; Gendelf; ilya017; Artios; Hexed; DmitrySinichnikov; avasl; angur; VKislitsin; Famza; KirinaAS; +18 Ответить
19. SerVer1C 925 22.04.24 14:44 Сейчас в теме
в питоне чуть проще:
import random
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456­789!@#$%^&*()_+-=~:;<>'
print(''.join([chars[random.randint(0, len(chars)-1)] for _ in range(16)]))
Оставьте свое сообщение