# Шифрование паролей

## Утилита шифрования паролей

Для шифрования паролей в конфигурационном файле Мультибанка (Транзит 2.0) необходимо использовать отдельную утилиту:

bin\bin\Encryptor\nsdt.config_encryptor.exe

Запуск утилиты осуществляется в консоле командой:

nsdt.config_encryptor.exe <полный путь к конфигурационному файлу> `--CurrentUser` `--Db` `--Https` `--Igate`

- `CurrentUser` - флаг, который задает область защиты данных “Текущий пользователь”. По умолчанию область защиты - текущая машина (снимать защиту с данных могут все запускаемые на компьютере процессы);

- `Db` - флаг, отвечающий за шифрование пароля от базы данных;

- `Https` - флаг, отвечающий за шифрование пароля от контейнера с ключом для установления TLS соединения;

- `Igate` - флаг, отвечающий за шифрование пароля для пользователя интеграционного шлюза (в случае, если взаимодействие с ИШ настроено с использованием WEB API);

При запуске утилиты проверяется существование конфигурационного файла, переданного в параметрах. Если файл не найден, работы программы прекращается. Иначе, считывается параметр PasswordEncryptionEnabled в конфигурационном файле:

- Если параметр отсутствует или равен `false` - перешифровываются пароли во всех блоках (Db, Https, Igate), вне зависимости от указанного в параметрах блока. По завершению параметру PasswordEncryptionEnabled присваивается значение `true`;
- Если параметр равен `true` - перешифровывается только пароль из блока, который указан в дополнительном параметре;

Внимание: При работе с утилитой необходимо учитывать следующие нюансы:

- Зашифровать можно три пароля в конфигурационном файле (пароль от базы данных, пароль от контейнера с ключом для TLS соединения и пароль от пользователя Интеграционного шлюза);
- Пароли могут быть либо все зашифрованы, либо все не зашифрованы. Промежуточного варианта нет;
- Признак того, что пароли в конфигурационном файле зашифрованы, отражен в свойстве PasswordEncryptionEnabled конфигурационного файла (значение `true` - пароли зашифрованы, иначе `false`);

## Первоначальное шифрование паролей

При первоначальном шифровании паролей необходимо:

1. Остановить сервис Мультибанка (Транзит 2.0);
2. Запустить nsdt.config_encryptor.exe, указав путь к конфигурационному файлу и область зашиты (запуск утилиты подробно описан выше);
3. Запустить сервис Мультибанка (Транзит 2.0);

## Перешифрование пароля в отдельном блоке

Для того чтобы перешифровать пароль в отдельном блоке, необходимо:

1. Остановить сервис Мультибанка (Транзит 2.0);
2. В конфигурационном файле заполнить пароль в секции(-ях), которую необходимо зашифровать, в открытом виде;
3. Запустить nsdt.config_encryptor.exe, указав путь к конфигурационному файлу, область зашиты и блок с паролем, который следует зашифровать (запуск утилиты подробно описан выше);
4. Запустить сервис Мультибанка (Транзит 2.0);