2017-02-19 27 views
-1

こんにちは私はHashlibで本当に新しく、すべてのファイルをディレクトリに作成してすべてのmd5ハッシュコードを作成するプログラムを作ろうとしています。私は数時間それに取り組んできました、そして、本当に迷惑な私はこれを理解できません。ここで私はこれまでのコードのために持っているものです。MD5ディレクトリ内のすべてのファイルをハッシュする

import hashlib, os, sys 
for root, dirs,files in os.walk("C:\Users\Matt\AppData\NewFolder", topdown=True): 
    for name in files: 
     #print(os.path.join(root, name)) 
FileName = (os.path.join(root, name)) 

hasher = hashlib.md5() 
with open(str(FileName), 'rb') as afile: 
    buf = afile.read() 
    hasher.update(buf) 
print(hasher.hexdigest()) 

誰かが私を助けてくれると嬉しいです。ありがとうございました。

+1

投稿されたコードには空白が含まれていますか?あなたの現在のコードの問題は何ですか?あなたは1つのファイルをハッシュしようとしましたか? – osgx

+0

コードは単一のファイルで動作しますが、フォルダ内のすべてを一度にハッシュしようとしています – Tyrell

+0

現在の状態では、このコードは 'IndentationError'を生成します –

答えて

2

ファイルの読み込みとハッシュコードをループ本体内に移動する必要があります。

import hashlib, os, sys 

for root, dirs,files in os.walk("C:\Users\Matt\AppData\NewFolder", topdown=True): 
    for name in files: 
     #print(os.path.join(root, name)) 
     FileName = (os.path.join(root, name)) 

     hasher = hashlib.md5() 
     with open(str(FileName), 'rb') as afile: 
      buf = afile.read() 
      hasher.update(buf) 
     print(hasher.hexdigest()) 
+0

ああ、私はそれがあなたにそんなに感謝したと思っていませんでした。 – Tyrell

+0

また、MD5はこの時点では弱いとみなされており、セキュリティに関連するものには使用しないでください。より良い代替手段はSHA-256です。 – Scovetta

関連する問題