Как получить пароль пользователя 1с программно
Перейти к содержимому

Как получить пароль пользователя 1с программно

  • автор:

1С 8.3 Получить сохраненные пароли — Программист 1С Минск. Автоматизация бизнеса.

ПРИМЕРЫ КОДА 1С

Перейти в раздел примеры кода 1С 8.3:

Программно получить сохраненные пароли в базе данных 1С 8.3:

Функция Получить_сохраненные_пароли () Экспорт // из регистра

// Функция позволяет:
// получить пароль системной учетной записи 1С
// учетный данные для обмена 1С с интернет магазином
// внутренний адрес менеджера сервиса
// пароль интернет поддержки пользователей
// и другие учетные жданные 1С

ДанныеСтр = Новый Структура ();

Запрос = Новый Запрос ;
Запрос . Текст =
«ВЫБРАТЬ
| БезопасноеХранилищеДанных.Данные КАК Данные
|ИЗ
| РегистрСведений.БезопасноеХранилищеДанных КАК БезопасноеХранилищеДанных
|ГДЕ
| БезопасноеХранилищеДанных.Владелец = &Владелец» ;

//будет выведен не весь список, а по конкретному владельцу
//Запрос.УстановитьПараметр(«Владелец», Владелец);
РезультатЗапроса = Запрос . Выполнить (). Выбрать ();

Если РезультатЗапроса . Следующий () Тогда
Если ЗначениеЗаполнено ( РезультатЗапроса . Данные ) Тогда
ДанныеИзХранилища = РезультатЗапроса . Данные . Получить ();
Если ЗначениеЗаполнено ( ДанныеИзХранилища ) Тогда
ЗаполнитьЗначенияСвойств ( ДанныеСтр , ДанныеИзХранилища );
КонецЕсли;
КонецЕсли;
КонецЕсли;

Получить (через БСП) сохраненные пароли в 1С 8.3:

Процедура Получить_сохраненные_пароли_БСП ( IDподсистемы ) Экспорт

ОбщегоНазначения . ПрочитатьДанныеИзБезопасногоХранилища ( IDподсистемы , «Пароль» );

Получить сохраненные пароль и логин ИТС из базы данных в 1С 8.3:

Процедура Получить_сохраненные_пароль_и_логин_ИТС () Экспорт

Авторизация = ИнтернетПоддержкаПользователей . ДанныеАутентификацииПользователяИнтернетПоддержки ();
Логин_авторизация = «» ;
Пароль_авторизация = «» ;

Попытка
Для Каждого ЭлементАвторизации Из Авторизация Цикл
Сообщить ( ЭлементАвторизации . Ключ + » Логин» Тогда
Логин_авторизация = ЭлементАвторизации . Значение ;
Сообщить ( «Логин: » + Логин_авторизация );
ИначеЕсли ЭлементАвторизации . Ключ = «Пароль» Тогда
Пароль_авторизация = ЭлементАвторизации . Значение ;
Сообщить ( » Пароль : » + Пароль_авторизация );
КонецЕсли;
КонецЦикла;
Исключение

Сообщить ( «Регистрационные данные ИТС отсутствуют!» );
//Добавить свои данных в хранилище можно так:
//ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ИнтернетПоддержкаПользователей.ИдентификаторПодсистемы(), «Ваш логин от ИТС», «login»);
//ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ИнтернетПоддержкаПользователей.ИдентификаторПодсистемы(), «Ваш Пароль от ИТС», «password»);

Как получить пароль пользователя 1с программно

Всем привет. Есть задача, вывести на форму поле, в которое пользователь забивает пароль пользователя, если пароль не верен, то ничего не происходит, если введенный пароль верен, то происходит чудо.

Проблема в том, что реквизит пароль у пользователя ИБ недоступен для чтения. Кто подскажет как выйти из положения?

ни как. Пароль только для записи

(1) А какая может быть альтернатива? Создавать реквизит «Пароль2», который не выводить на форму справочника Пользователи и к нему обращаться?

(2) а хз. Ты ж не говришь, какая у тебя задача. Ты рассказываешь, как ты ее решать собрался.
В этой стороне решения нет.

Хочешь подсказок, рассказывай задачу. Не хочешь рассказывать — думай сам

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

По задумке, менеджер должен заполнить реквизиты документа, а потом ввести свой пароль. Если пароль пользователя совпадает, то то тогда документ записывается, если не совпадает, тогда се ля ви.

ps вспомнил, есть обработка перенос пользователей ИБ, сейчас посмотрю, они как то там хитрозадо из xml этот пароль перетаскивают.

хеш пароля

есть вот такая вот штука:
ПользователиИнформационнойБазы.ТекущийПользователь().СохраняемоеЗначениеПароля
но это не подходит, там хеш (6)

да создай ты еще один реквизит у пользователя и туда паролей нафигачь, безопасность нулевая зато получишь то что тебе надо

(4) нахрен ЭТО надо? Перестаньте ходить под одним пользователем и всё.
(7) вот хеши и сравнивай

(8) а если юзверь пароль изменит, то ему прийдется один вводить при входу, второй вводить при создании документа.

а! или у них в торговом зале один комп на всех, а продажи вы хотите считать по каждому?
(10) а как получить хеш введенной строки?

(12) да, в торговом зале один комп, пока хочу понимать, кто во сколько на работу приходит, потом будем продажи по пользователям разделять.

Гугл в помощь.

(9) тебе не понять, у обезьян один комп в торговом зале, перелогиниваться они не будут из вредности, лучше одинесника озадачить, а то он зарплату запросто так получает

(14) Прикручивай сканер отпечатков пальцев, а то вдруго ни пароли друг другу расскажут.

+(12) тогда так:
1. Пароль хранить в отдельном реквизите справочника Пользователи
2. В интерфейс вынести кнопку «Сменить пользователя»
По нажатию этой кнопки у пользователя запрашивается имя пользователя и пароль.
Если введенный пользователь есть в справочнике и пароль совпадает с тем, что в справочнике, то тогда проворачиваем всю ту же кутерьму, кторая происходит при начале работы системы в связи с установкой параметра сеанса ТекущийПользователь.
3. Добавить кнопку «Сменить пароль», кторая записывае новый пароль в справочник и в ПольователиИнформационнойБазы
4. для верности — регзадание, которое принудительно всем пользователям ИБ устанавливает пароль из справочника

При проведении документа закрывай систему ))
. пальцы тоже могут. но они могут испортиться. и их конеченое количество.
Вопрос меняется на другой. Как получить хеш введенной пользователем строки ?

(14) дай им штрихкод на телефон.
Пришел на работу, показал телефон сканеру, сканер запомнил, когда пришел этот чел на работу. Задача решена без паролей.

Да, будут передавать шриходы друг другу. Но они и пароли так же будут передавать

А штрихкоды можно ночером новые слать

(23) гуманоиды могут телефон забыть. Короче тут нужен пароль.

какое хеширование используется в пароле?

HASH / MESSAGE DIGEST АЛГОРИТМЫ
MD5 Hash
SHA1 хэш
SHA256 Хэш
SHA384 Хэш
SHA512 Хэш
RIPE MD160 Hash

Их вона как много

Хешер = Новый ХешированиеДанных(ХэшФункция.SHA256);
Хешер.Добавить(«влоарфыдлрдларфыдлвпрыдлпрвыдпы»);

точнее
СОобщить(XMLСтрока(Хешер.ХэшСумма)) — так строку получишь
(24) тупая отмазка. пароль точно также забудут. Точнее они их распечатают и под клавиатуру положат
Забыл телефон дома — пошел наиух домой за телефоном
(0) зачем все эти пароли. сделай сотрудникам бейджи со штрихкодами, пусть их сканируют при подходах
(30) спасибо!
(31) они их потеряют или сканер сломают
(27) Можно пример рабочего кода? я не понимаю без контекста (((
Пальцы надежнее и чтоб ногти только не грызли вместе с пальцами

(28) (31) (33) (35) есть такой человек — руководитель отдела продаж. У него голова как у лошади — большая. Вот пусть ей и думает.

Мое дело телячье — сделал и сдал. Потом переделал, еще заработал.

(36) Делай многофакторную авторизацию. Приложил палец — пришел штрихкод на телефон, отсканировал штрихкод. а потом еще ввод пароля.

Класс, есть типовая функция:

// Возвращает сохраняемое значение пароля для указанного пароля.
//
// Параметры:
// Пароль — Строка — пароль для которого нужно получить сохраняемое значение.
//
// ИдентификаторПользователяИБ — УникальныйИдентификатор — пользователя ИБ для которого нужно
// сравнить сохраняемое значение с полученным и результат поместить
// в следующий параметр Совпадает.
//
// Совпадает — Булево (возвращаемое значение) — см. комментарий к параметру.
// ИдентификаторПользователяИБ.
// Возвращаемое значение:
// Строка — сохраняемое значение пароля.
//
Функция СохраняемоеЗначениеСтрокиПароля(Знач Пароль,
Знач ИдентификаторПользователяИБ = Неопределено,
Совпадает = Ложь) Экспорт

даже без велосипеда все работает ))))

Работа с паролями пользователей в 1С

Для того чтобы программно задать пароль пользователя в 1С, нужно сначала получить нужного пользователя информационной базы. Для этого используется метод НайтиПоИмени() менеджера пользователей информационной базы.

Пользователь = «Иванов Иван Иванович» ;
ПользовательИБ = ПользователиИнформационнойБазы . НайтиПоИмени ( Пользователь ) ;

Установка нового пароля

Для установки нового пароля пользователя 1С, его нужно записать в свойство Пароль пользователя информационной базы. Это свойство недоступно для чтения, поэтому, записав туда пароль, прочитать его уже не удастся.

ПользовательИБ . Пароль = «q12345» ;

После установки пароля свойство ПарольУстановлен пользователя информационной базы примет значение Истина. Пароль начнет работать после перезапуска системы.

Установка требований к сложности пароля в 1С

Система 1С:Предприятие имеет встроенный механизм проверки сложности паролей пользователей. Функция включается через Конфигуратор, меню Администрирование — Параметры информационной базы — Проверка сложности паролей пользователей.

При включении этой функции пароль проверяется на соответствие следующим требованиям:

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

    Можно включить эту функцию программно:

    УстановитьПроверкуСложностиПаролейПользователей ( Истина ) ;

    Для проверки вводимого пользователем пароля на соответствие этим требованиям попытаемся создать временного пользователя с заданным паролем. В функцию мы будем передавать сам новый пароль. Функция будет возвращать значение Истина, если пароль соответствует требованиям, и Ложь — если не соответствует.

    Функция ПарольСоответствуетТребованиям ( Пароль )

    //Убедимся, что проверка сложности включена
    УстановитьПроверкуСложностиПаролейПользователей ( Истина ) ;

    //Создадим временного пользователя и установим его параметры
    ВременныйПользовательИБ = ПользователиИнформационнойБазы . СоздатьПользователя ( ) ;
    ВременныйПользовательИБ . АутентификацияСтандартная = Истина ;
    ВременныйПользовательИБ . Имя = НСтр ( «ru = ‘Временный пользователь'» ) +
    » (» + Строка ( Новый УникальныйИдентификатор ) + «)» ;

    //Установим временному пользователю требуемый пароль
    ВременныйПользовательИБ . Пароль = Пароль ;

    //Попытаемся записать временного пользователя.
    //Если появится ошибка, значит пароль не соответствует требованиям
    ХорошийПароль = Истина ;

    //Удалим временного пользователя
    ВременныйПользовательИБ . Удалить ( ) ;

    Как программно проверить пароль пользователя 1С

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

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

    Для проверки соответствия введенного пароля паролю из информационной базы можно использовать следующую функцию. В нее мы передадим введенный пароль и имя пользователя. Функция вернет значение Истина, если пароль соответствует паролю информационной базы, и Ложь — если не соответствует.

    Функция ПроверитьПароль ( Пользователь , Пароль )

    //Получим пользователя ИБ
    ПользовательИБ = ПользователиИнформационнойБазы . НайтиПоИмени ( Пользователь ) ;

    //Получим хешированное представление введенного пароля
    ХешированиеДанных = Новый ХешированиеДанных ( ХешФункция . SHA1 ) ;
    ХешированиеДанных . Добавить ( Пароль ) ;
    ХешированныйНовыйПароль = Base64Строка ( ХешированиеДанных . ХешСумма ) ;
    ХешированиеДанных = Новый ХешированиеДанных ( ХешФункция . SHA1 ) ;
    ХешированиеДанных . Добавить ( ВРег ( Пароль ) ) ;
    ХешированныйНовыйПароль = ХешированныйНовыйПароль + «,» + Base64Строка ( ХешированиеДанных . ХешСумма ) ;

    //Сравним полученный хешированный пароль и хешем пароля в информационной базе
    Возврат ХешированныйНовыйПароль = ПользовательИБ . СохраняемоеЗначениеПароля ;

    Как узнать пароль от 1С. Подробная инструкция.

    Пароли могут забываться, теряться, уходить вместе с предыдущим сотрудником и т.д. и т.п. В этом случае необходимо как можно скорее восстановить доступ и сегодня мы подробно расскажем как именно это можно сделать.

    Как взломать пароль 1С и поствить новый?

    Мы уже писали о том, как провести сброс пароля в программе, сегодня поговорим о том, как взломать пароль от 1С и поставить новый, известный нам.

    Для начала нужно открыть файл базы в Tool_1CD и таблицу V8USERS. В ней выбираем пользователя с правами администратора.

    как узнать пароль от 1С

    Выбираем поле колонку DATA, и там видим что-то похожее на это:

    Жирмым выделен SHA-1 пароль 2jmj7l5rSw0yVb/vlWAYkK/YBwk.

    Теперь нужно ввести в Гугле «sha1 онлайн», поставить 2jmj7l5rSw0yVb/vlWAYkK/YBwk и получить хеш 872d5086e33833b6e51211391190013fff268d20.

    Дальнейшие действия, можно сбрутить полученный хеш, но ждать придется долго. Тут на помощь придут специализированные сервисы и утилиты.

    Но проще заменить его на хеш известного вам пароля. Так хеш 2jmj7l5rSw0yVb/vlWAYkK/YBwk= это пустая строка. Т.е. меняем пароль, на пустую строку, и получаем, пользователя без пароля. Входим в 1С без пароля и радуемся жизни.

    Как снять пароль с 1С, чтобы он больше не требовался?

    Для того, чтобы удалить пароль 1С потребуется доступ к файлам базы и какой-либо HEX-редактор.

    Вы можете использовать WinHex (бесплатная версия не позволяет сохранять файлы размером более 200 Kb), Free Hex Editor (условно-бесплатный) или любой другой HEX-редактор с функцией поиска.

    Шаг 1

    Делаем резервную копию базы.

    Важно! Мы специально акцентируем на этом внимание, т.к. манипуляции с базой в шестнадцатеричном редакторе не всегда проходят без последствий. Лучше всего перестраховаться.

    Шаг 2

    В HEX-редакторе открываем файл базы с именем 1Cv8.1CD.

    Далее нужно открыть окно поиска, выбрать тип строки Unicode (это поле есть во всех серьезных HEX-редакторах) и найти строку «users.usr». Если ничего не находится — попробуйте поискать без учета регистра (пункт «Match case» в WinHex, пункт «Без регистра» в Free Hex Editor).

    Окно поиска в программе Free Hex Editor:

    взлом пароля 1С

    Окно поиска в программе WinHex:

    1c взломать пароль

    Шаг 3

    В найденной строке нужно найти значение «09» (столбец «1» на рисунке) и слева от него исправить «00» на «01» (столбец «0» на рисунке), а затем сохранить изменения.

    1С узнать пароль

    Для того чтобы узнать пароль для баз 1С 8.1 этого достаточно — можно зайти в конфигуратор — пароль не спросят.

    А вот для взлома баз 1С 8.2 и 8.2 нужно сделать дополнительные действия.

    Шаг 4

    Снова используем поиск и ищем строку «v8users».

    Шаг 5

    В найденной строке меняем букву «V» на «H» так, чтобы получилось «h8users».

    как взломать пароль от 1С

    На этом взлом закончен — пароль больше запрашиваться не будет.

    Не забудьте вернуть все, как было или задать новый пароль после того, как сделаете все необходимое!

    Оптимизируйте работу с 1С, не отвлекая программистов

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

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

    Почему это выгодно?

    • Не нужно принимать человека в штат. Забудьте о подготовке очередного рабочего места и тратах на больничные и отпускные.
    • Не зависите от одного. Наши сотрудники тоже болеют и отдыхают, но это не ваши проблемы! Их тут же заменяют другие сотрудники и работа продолжается.
    • Дополнительный уровень проверки. Всегда ли у руководителя достаточно знаний для того, чтобы оценить качество выполненной работы? А вот в специализированных компаниях всегда есть вышестоящий проверяющий.

    Мы приглашаем вас обращаться за внедрением, сопровождением и разработкой под 1С к нам, в компанию «ПРОГРАММЫ 93». Позвоните по номеру, указанному на сайте или заполните форму обратной связи и наши сотрудники сориентируют вас по стоимости услуг, помогут подобрать подходящее решение и расскажут, как начать сотрудничество.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *