Для начала поговорим об объекте ПользовательИнформационнойБазы. Обратимся в синтаксис-помощник:
ПользовательИнформационнойБазы (InfoBaseUser)
Свойства:
АутентификацияОС (OSAuthentication) Определяет, использовать ли аутентификацию Windows для данного пользователя.
АутентификацияСтандартная (StandardAuthentication) Определяет, использовать ли аутентификацию Windows для данного пользователя.
Пароль (Password) пароль установленный у пользователя(доступен только для записи)
УникальныйИдентификатор (UUID) позволяет искать конкретного пользователя ИБ с помощью функции ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(Новый УникальныйИдентификатор(УникальныйИдентификатор))
СохраняемоеЗначениеПароля (StoredPasswordValue)
Содержит хранимые значения пароля (хеш-функции) и хранимые значения пароля в верхнем регистре (хеш-функции) разделенные запятой.
Установка свойства определяет пароль нового пользователя (по умолчанию - пустая строка) или меняет пароль существующего пользователя.
Изменения начнут действовать только после записи пользователя.
Не следует одному пользователю устанавливать значения этого свойства совместно со значением свойства Пароль. Иначе пароль записанному пользователю будет установлен в соответствии с установленным значением свойства Пароль, а установленное значение свойства СохраняемоеЗначениеПароля будет проигнорировано.
Доступно только пользователю с административными правами.
Для примера воспользуемся функцией ПользователиИнформационнойБазы.ПолучитьПользователей(), которая вернет нам массив пользователей информационной базы. В результате получим следующий массив:
Индекс |
Значение элемента |
УникальныйИдентификатор |
Имя |
Аутентификация Стандартная |
СохраняемоеЗначениеПароля |
1 |
А; LA |
56b3c643-c234-4d79-8d0e-f6db71895a1c |
Laine_A |
ЛОЖЬ |
cRDtpNCeBiql5KOQsKVyrA0sAiA=, cRDtpNCeBiql5KOQsKVyrA0sAiA= |
Нас интересует поле СохраняемоеЗначениеПароля. Обратим внимание, что значение записано через «,», т.е. в верхнем и нижнем регистрах, как и указано в синтаксис помощнике.
Пароль в 1С хранится в виде хэша, сформированного из строки пароля по алгоритму SHA-1 http://ru.wikipedia.org/wiki/SHA-1 и упакованного по алгоритму base64. Есть приложения, которые позволяют получать из хэша пароль. Например https://hashkiller.co.uk/sha1-decrypter.aspx
У меня получилось из пароля зашифровать по алгоритму в SHA-1 с помощью http://www.sha1-online.com/
Но преобразовать по алгоритму base64 не получилось.
Опытным путем было вычислено, что пароль qwerty имеет вид «sbN3OgXA7QF2eHpPFXT/AHX3Uh4=,ZeIeoN6IUqvCsNghwfmsbyzVvZg=».
Так как у нас есть готовый хэш для подстановки, нам необходимо сохранить в буфере старый хэш для того чтобы пользователь после наших манипуляций снова мог зайти под своим паролем.
И выставим аутентификацию стандартную, чтобы могли заходить под паролем.
Далее формируем строку подключения "ENTERPRISE" /N"LA" /Pqwerty, запускаем приложение и через 5-20 секунд возвращаем все назад.