2013-03-05 2 views
1

Я использую скрипт bash для запуска java-программы/процесса. Сценарий bash запрашивает имя пользователя и пароль и должен предоставить их в java-процесс. Я не хочу предоставлять их в качестве параметров для java-программы, чтобы их можно было рассматривать как чистый текст, используя команду «ps» оболочки. Так что я не хочу одно из следующих действий:Как передать пароль в java-процесс

- java MyClass <clearTextPassword> 
- java -Dpass=<clearTextPassword> 

Существуют ли какие-либо способы рекомендуется ввести пароль к процессу Java из скрипта?

Заранее благодарим за любые предложения.

С наилучшими пожеланиями Trym

+0

Я предполагаю, что вы не можете изменить часть java так, чтобы она запрашивала пароль сам по себе? –

ответ

2

В этом случае я создаю файл на диске (в зашифрованном виде или нет в зависимости от вашего уровня потребности безопасности). Я изменяю разрешение, чтобы только контролируемый пользователь мог его прочитать при выполнении программы.

1

Вы можете сохранить пароль в файле свойств (у вас есть разные варианты обеспечения безопасности. Вы также можете полностью отказаться от пароля и использовать открытый ключ

1

Вы можете передать хешированную версию пароля. Например, укажите временную метку и временную метку MD5 и пароли, объединенные вместе. Это, конечно, если вы контролируете код процесса и можете работать с хешированная версия.

+0

Хорошо, какая разница будет иметь hashcode, если человек получает хэш-значение, программа может выполнять код nevertherless – Sudhakar

+0

, вы можете сделать хэш (timestamp + pwd), поэтому повторная атака невозможна без использования та же метка времени, которую вы могли обнаружить. – Resh32

3

, если вы сами закодировали программу, лучше спроектировать свою программу таким образом, чтобы она заставляла пользователя вводить пароль и использовать Console cl ass's readPassword(), чтобы прочитать пароль из командной строки

+0

Я предполагаю, что единственным недостатком было бы то, что вы не могли автоматически запускать программу с некоторым интервалом, так как она будет читать stdin каждый раз. –

+0

есть. В этом подходе пользователь должен быть доступен для ввода пароля во время работы. – codeMan

+0

В скрипте оболочки я запускаю java, используя nohup, поэтому я предполагаю, что консоль недоступна? – user2134911

Смежные вопросы