私はshaを使って文字列をハッシュすることができる関数を作りたがっていました。 は、ここに私のコードです:私はこのコードをコンパイルするとパラメータを渡すことからのHexdigest
def hashNow(number,string):
for i in range (number):
hashH = int(hashlib.sha1(string.hexdigest(),16)
print hashH #debug purpose
indexing = hashH % len(arrays)
arrays[indexing] = 1
、それはprint hashH
でSyntaxError: invalid syntax
ポインティングを印刷します。私の経験に基づいて、無効な構文エラーは通常、前の行のエラーキャリアです。
私の質問:hexdigestを間違って実装していますか?なぜstring.hexdigest()
が構文エラーを引き起こすのですか?
'hashH = ..'行に') 'がありません。 –
私はここで何をしようとしているのか分かりません。 'str'オブジェクトには' hexdigest'メソッドがありません。 16進ダイジェスト(整数として再びデコードする)を望まないならば、単に '.digest()'メソッドを使ってバイトを直接取得するのではないでしょうか? –
'' hexlib.sha1() 'の結果に対して[' hexdigest() '](https://docs.python.org/2/library/hashlib.html#hashlib.hash.hexdigest)の呼び出しを行う必要があります: 'hashlib.sha1(文字列).hexdigest()' – xZise