2016-03-23 13 views
0

このコードはコマンドラインで動作します。pythonのbase64構文が機能しません

python -c 'import base64,sys; u,p=sys.argv[1:3]; print base64.encodestring("%s\x00%s\x00%s" % (u,u,p))' user pass 

出力は dXNlcgB1c2VyAHBhc3M =

である私は、これは私のスクリプトで

test = base64.encodestring("{0}{0}{1}").format(acct_name,pw) 
print test 

を仕事に取得しようとしています出力は、誰もが私が間違っているの何NO ezB9ezB9ezF9

のですか? ありがとうございます。

+0

'encodestring'によって返された値をフォーマットします。 'encodestring(" {0} {0} {1} "。format(acct_name、pw))'は正しく動作するはずです。 – vaultah

+0

多分私は何かが欠落しているかもしれませんが、コマンドラインで渡される文字列も置換パラメータの間に '\ x00'を持っています... – mgilson

+0

この質問には、タイプミスのフラグが付けられるのでしょうか、私は前者に向かって傾いている。 – Reti43

答えて

1

括弧内に間違いがあります。代わりに:

test = base64.encodestring("{0}{0}{1}").format(acct_name,pw) 

もし

test = base64.encodestring("{0}{0}{1}".format(acct_name,pw)) 
を有するべきである(その後、BASE64でその最初のエンコード "{0} {0} {1}" と formatを使用して変数を置換する試行)、

(最初はformatを使用して変数を代入します。はbase64でエンコードします)。

+0

ありがとうSZYM、あなたは私にもっと近いです。私はテストしたu = apple p = appleとコマンドラインからYXBwbGUAYXBwbGUAYXBwbGU =を取得します。私のスクリプトは、このYXBwbGVhcHBsZWF​​wcGxlを与えるこれは私が得る新しいエラーです。ファイル ""、行1、 NameError:名前 'appleapple'が定義されていません –

0

ありがとうSZYM私はすべて設定されています。これは、

test = base64.encodestring("{0}\x00{0}\x00{1}".format(acct_name,pw)) 

を動作するように取得するコードは、六角の\ X00がそのようにプログラムは、ユーザー名が停止し、パスワードが始まるハッシュが知っているになっている必要が判明しています。 -ALF

関連する問題