Генерация паролей 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С:Бухгалтерия 3.0 Россия Абонемент ($m)

Создал простое расширение, которое проставит галку Запомнить пароль. Должно работать на всех версиях БСП, т.к. простое.

2 стартмани

19.11.2024    117    0    slavok123    0    

1

Пароли Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Расширение добавляет возможность настроить обновление пароля пользователем через заданный промежуток времени в днях (1-99 дней). Также добавлен контроль: новый пароль не должен совпадать с предыдущим.

1 стартмани

11.11.2024    204    1    KonorArgent    0    

1

Информационная безопасность Пароли Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

16.07.2024    728    maksa2005    0    

1

Инструменты администратора БД Пароли Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

13.06.2024    792    15    alexey.kutya    2    

3

Пароли Системный администратор Платформа 1С v8.3 Бесплатно (free)

В очередной раз пришлось поменять пароль пользователя sa в базе данных MS SQL, и поскольку эту процедуру приходится делать нечасто, решил записать последовательность действий для памяти. Коротко. Июнь 2024 г.

03.06.2024    4904    2ncom    9    

15

Информационная безопасность Пароли Платформа 1С v8.3 Бесплатно (free)

Все еще храните пароли в базе? Тогда мы идем к вам! Безопасное и надежное хранение секретов. JWT авторизация. Удобный интерфейс. Демо конфигурация. Бесплатно.

30.05.2024    6236    kamisov    17    

60

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

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

1 стартмани

15.05.2024    704    2    Лев    1    

1

Инструменты администратора БД Роли и права Пароли Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка предназначена для переноса пользователей между разными базами 1С. Позволяет выгрузить выбранных (или всех) пользователей базы-источника со всеми настройками, включая разделение данных, в файл. И с помощью этой же обработки загрузить выгруженных пользователей из файла в базу-приёмник. Может быть полезна тем, кто хочет перенести пользователей между базами, у которых включено разделение данных.

1 стартмани

02.05.2024    680    5    METAL    2    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 32 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 67 27.07.16 08:45 Сейчас в теме
Это те самые пароли, которые на стикерах к мониторам приклеивают? :-)
NazarovV; +1 Ответить
6. pumbaE 27.07.16 16:54 Сейчас в теме
А зачем для 1с выдумывать пароли с разным регистром букв, если для авторизации в самой 1с это не важно? Все равно все приводит при проверке к верхнему регистру.
Артано; a_a_burlakov; +2 2 Ответить
7. dj_serega 393 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 288 28.07.16 11:01 Сейчас в теме
(10) pumbaE, надо же, действительно!
14. cargobird 308 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 178 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 272 15.06.19 18:56 Сейчас в теме
ПользователиСлужебный.СоздатьПароль(ПользователиСлужебный.ПараметрыПароля(6, Истина))
user712340_lost-s0u1; METAL; cheburashka; DinJak; SAGerasimov; marilb; slvovich; Gendelf; ilya017; Artios; Hexed; DmitrySinichnikov; avasl; angur; VKislitsin; Famza; KirinaAS; +17 Ответить
19. SerVer1C 815 22.04.24 14:44 Сейчас в теме
в питоне чуть проще:
import random
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456­789!@#$%^&*()_+-=~:;<>'
print(''.join([chars[random.randint(0, len(chars)-1)] for _ in range(16)]))
Оставьте свое сообщение