2014-01-05 5 views
1

Я пишу сценарий установки на PHP, где пользователь должен ввести имя пользователя и пароль пользователя root MySQL.Чтение ввода пароля с консоли

В настоящее время я использую:

fgets(STDIN) 

прочитать имя пользователя и пароль, но это не является безопасным, потому что другие люди могут взглянуть и увидеть пароль напечатанный.

Есть ли способ ввести пароль от пользователя, чтобы он выглядел следующим образом: «**», похожее на то, как оно выглядит на веб-странице?

+0

Не похоже на одноразовое решение, но посмотрите на похожие вопросы: http://stackoverflow.com/questions/187736/command-line-password-prompt-in-php и http://stackoverflow.com/questions/297850/is-it-really-not-possible-to-write-a-php-cli-password-prompt-that-hides-the-pass – sachleen

+1

Поскольку это сценарий установки почему бы не просто предупредить установщика, что это так. Это одно событие и вряд ли стоит усилий. –

+0

Нашел ваш ответ из других вопросов, связанных с stackoverflow. Надеюсь, что это поможет. (LInk, представленный ниже) http://stackoverflow.com/questions/187736/command-line-password-prompt-in-php http://stackoverflow.com/ вопросы/297850/is-it-really-not-possible-to-write-a-php-cli-password-prompt-that-hides-the-pass Надеюсь, это поможет .. :) –

ответ

1

Мы не можем хранить как '*****' буквально. Но вы можете усложнить восстановление.

я ставлю некоторые хэш в моем веб-конфигурации, как переменная окружения, скажем MYSQL_PASS_HASH

Тогда я сделать что-то вроде md5(getenv('MYSQL_PASS_HASH').'gibberish$qwefsdf'), который затем пароль.

Ваш пароль буквально не будет храниться где-нибудь, и его можно восстановить только тогда, когда у вас есть и ваша веб-конфигурация, и ваша база данных.

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