Function 使用两个函数对Python进行密码哈希

Function 使用两个函数对Python进行密码哈希,function,python-3.x,hash,Function,Python 3.x,Hash,尝试创建一个脚本,该脚本只接受密码列表,然后以纯文本形式打印出来,并用md5散列。问题是我试图使用两个函数,但无法使它们正常工作。passwordlist函数应该接受passwordlist作为参数,然后循环遍历列表中的每个项目,打印实际密码、逗号,然后打印md5加密密码。makemd5函数只是用来创建散列 import hashlib passwordlist = ["password","123456","12345678","1234","qwerty","12345", "basebal

尝试创建一个脚本,该脚本只接受密码列表,然后以纯文本形式打印出来,并用md5散列。问题是我试图使用两个函数,但无法使它们正常工作。passwordlist函数应该接受passwordlist作为参数,然后循环遍历列表中的每个项目,打印实际密码、逗号,然后打印md5加密密码。makemd5函数只是用来创建散列

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 ()

除非这是一个学校项目,否则使用MD5密码是完全不安全的,永远不应该这样做。仅仅使用散列函数是不够的,仅仅添加一个salt对提高安全性几乎没有作用。取而代之的是,在HMAC上随机添加盐,持续约100毫秒,并将盐与散列一起保存。使用诸如
PBKDF2
Rfc2898DeriveBytes
password\u hash
Bcrypt
等函数和类似函数。重点是让攻击者花费大量时间通过暴力手段查找密码。这是专门针对学校的,因此哈希本身并不重要,学习如何编写脚本才是目标。
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 ()