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