2017-03-19 7 views
0

パスワードのリストを受け入れ、プレーンテキストで出力し、md5でハッシュしたスクリプトを作成しようとしています。問題は、2つの関数を使用しようとしており、関数を正しく動作させることができないことです。 passwordlist関数は、引数としてpasswordlistを受け入れ、リスト内の各項目をループし、実際のパスワード、カンマ、md5暗号化パスワードを出力する必要があります。 makemd5関数は単にハッシュを作成するだけです。2つの関数を使用してパスワードハッシングPython

import hashlib 
passwordlist = ["password","123456","12345678","1234","qwerty","12345", 
"baseball","football","letmein","monkey","abc123","mustang","michael"] 

def makemd5(key_string): 

    new_key_string = key_string.encode('utf-8') 

    return (hashlib.md5 (new_key_string).hexdigest()) 

def createmd5list(passwordlist): 

    for key_string in passwordlist: 

    return (key_string, makemd5) 


def main(): 

    hashlist = createmd5list(passwordlist) 

    print(hashlist) 

main() 
+0

これはMD5でパスワードをhasing学校のプロジェクトでない限り、完全に安全ではないとshouldsが行われ、これまでにされません。ハッシュ関数を使うだけでは不十分で、単に塩を追加するだけでセキュリティを向上させることはほとんどありません。代わりに、約100msの持続時間の間、ランダムな塩でHMACを繰り返し、塩をハッシュで保存してください。 'PBKDF2'、' Rfc2898DeriveBytes'、 'password_hash'、' Bcrypt'などの関数を使用してください。要点は、攻撃者が無差別にパスワードを見つけるのに多くの時間を費やすことです。 – zaph

+0

これは特に学校向けのものなので、ハッシュ自体は重要ではなく、スクリプトを書く方法を学習することが目標です。 –

答えて

0
import hashlib 
passwordlist = ["password","123456","12345678","1234","qwerty","12345", 
"baseball","football","letmein","monkey","abc123","mustang","michael"] 

def makemd5(key_string): 

    new_key_string = key_string.encode('utf-8') 

    return (hashlib.md5 (new_key_string).hexdigest()) 

def createmd5list(passwordlist): 

    for passlist in passwordlist: 
     hashlist = makemd5(passlist) 
     print (passlist,",",hashlist) 


def main(): 

    passlist = createmd5list(passwordlist) 

    print(passlist) 


main() 
関連する問題