2016-04-27 11 views
0

私はlogin.pyというプログラムを持っています。これを実行すると、パスワードを入力するように求められます(5文字)。ユーザーが正しいパスワードを入力すると、「Login successful」が出力され、ユーザーは他のプログラム内操作にアクセスできます。私はbashスクリプトを書こうとしていますが、私がこのパスワードを強要できるかどうかを確認しようとしています。bashスクリプトを使ってPythonプログラムのパスワードをブルートフォース

私はfor str in $(echo {a..z}{a..z}{a..z}{a..z}{a..z}); doを使用してパスワードを生成しています。

これらの生成された文字列をlogin.pyプログラムに渡して一致するパスワードを出力するにはどうすればよいですか?

+2

ログインの様子がわからないと助けにならない – linusg

+1

重要ですか?私は、プログラムの入力としてパスワードのストリームを送信する必要があります、そして、それぞれの試みのために 'Login successful'または 'Invalid login'を出力します。しかし、助けがあれば、パスワードはSHA256で暗号化され、暗号化されたファイルに保存されます。私はパスワードを検証するためにハッシュを比較しています。 – User134562

+0

コマンドライン引数を使用できます。これは外部データをPythonプログラム自体に渡す方法です。 –

答えて

1

expect は、Pythonログインとやりとりするためのツールです。これは、ダイヤルアップ接続の日にログインプロセスを自動化するために特別に設計されています。アクションを入力パターンに一致させることで機能します。 例えば

#!/usr/bin/expect -f 
spawn $your-python-program 
expect "ogin:" 
send_tty "$ruser\n" 
expect "assword:" 
send_tty "$passwd-guess\n" 
0

これは、Pythonプログラムは、パスワードを読み込み方法によって異なります。

単にstdin(チェック例http://pastebin.com/raw/YHnZfyJC)を使用している場合は、echo foo | python thescript.pyと呼んでください。

スクリプトがコマンドライン引数としてパスワードを受け入れる場合は、それを渡すだけです。

getpassモジュールのようなものを使用している場合は、@ user6170930のようにexpectを使用する必要があります。

+0

プログラムは、端末から明示的に読み取ることもできます – hek2mgl

関連する問題