Какой смысл в функции пароля? Если он работает на компьютере, который находится под управлением какого-либо пользователя, а не под вашим пользователем, они получат доступ. Вы ничего не можете с этим поделать.
Как правило, для приложений, которые работают исключительно локально, совмещаются с самой ОС; сохраните данные в домашнем каталоге пользователя и убедитесь, что права доступа к файлу таковы, что другие (не администраторы) пользователи не могут его прочитать. Другие пользователи-администраторы? Ну, они администраторы. Если они хотят это прочитать, они могут, вот в чем смысл таких пользователей. Вы не можете остановить их от этого. Если вы сохраняете соответствующие данные для каждого пользователя в файле, который могут прочитать только они, вам вообще не нужно запрашивать имя пользователя / пароль; их «логин» - это их локальное имя пользователя, а их «аутентификация» - неотъемлемая часть. Простой.
Единственный случай, когда установка пользователя / пароля МОЖЕТ иметь смысл, - это если приложение запускается администратором и запускается в заблокированном режиме, когда приложение, работающее с клавиатурой и мышью, не может получить доступ к корпус системы и не может закрыть приложение вообще. Вот, например, как работает банкомат: это просто windows машины, где «клавиатура» - просто цифровая клавиатура, а мышь и сама компьютерная система заперты в кучу кирпичей и металла. Если вы делаете это, убедитесь, что вы применяете правильную гигиену паролей; не храните его, вместо этого сохраните его bcrypt / pbkdf / argon2 / scrypt ha sh. Таким образом, если кто-то получит этот файл, ваше приложение будет заблокировано, но, по крайней мере, если этот пользователь повторно использует свои пароли на других сайтах (что делают пользователи, в пики), взломать это тоже не удастся.
Я полагаю, у вас этого нет, и это возвращает нас к: Что вы пытаетесь выполнить sh с помощью пароля?