Python;Encode to MD5(hashlib)显示错误:“NoneType”

2024-04-26 00:01:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个代码,将生成5次随机密码,我想把密码编码到MD5,但当我试图编码它,它会显示一个错误,即“NoneType”对象没有属性“encode”,我不知道如何更改代码,以避免这个错误。抱歉,我是python初学者。。。我的代码在下面。谢谢你的帮助

import random, string
import hashlib

length = 6
chars = string.ascii_letters + string.digits

def ff():
    rnd = random.SystemRandom()
    a = (''.join(rnd.choice(chars) for i in range(length)))
    c = a
    return(c)

def ff2():
    for i in range(5):
        print(ff(),' ')


str = ff2()
result = hashlib.md5(str.encode())

print("The hexadecimal equivalent of hash is : ", end ="")
print(result.hexdigest())

Tags: 代码import密码编码stringdef错误random
2条回答

函数ff2不返回任何内容,因此str将是NoneType类型。你知道吗

IIUC,您的ff2()函数应该调用ff()五次,但它不应该输出结果。它应该将它们累积在一个字符串中并返回字符串。可能是这样的:

def ff2():
    l = []
    for i in range(5):
        l.append(ff())
    return " ".join(l)

在这里,我们将对ff()的五个调用的结果累加到一个列表l中,然后 使用字符串方法join()将它们连接在一起。 上面返回一个字符串,它是对ff()的调用返回的五个字符串的串联,用空格分隔它们。如果需要逗号作为分隔符,只需将return " ".join(l)替换为return ",".join(l)。你知道吗

相关问题 更多 >