while循环Python上的编码问题

时间:2018-07-19 08:08:28

标签: python hash encoding

好的,所以我试图创建一个小程序,为每个文本输入创建一个哈希。

第一个循环很好,它得到正确的哈希,但是在那之后,它只是继续编码其他东西,我不确定是什么。这意味着带有哈希的登录系统不起作用。

有人可以帮忙吗!!!!

import hashlib
encoder = hashlib.md5()
while True:
    OString = input("Input some text here >")
    encoder.update(OString.encode())
    hashedString = encoder.hexdigest()
    print(hashedString)

    Ostring = None
    hashedString = None

结果:

Input some text here >leila
754f9968bf5f5f68d7dea029889b7415
Input some text here >leila
e0d1d4c285dda17ba6ca74a4dc85ebac
Input some text here >leila
419b5673f979911d3418472b105b6d3b
Input some text here >leila
71cf61a5ed5ebe751fdd1409928fe29d
Input some text here >leila
8149e3cc783fc400a7d26d63d5725536
Input some text here >leila
25c64d332128eb267f8d38f4140f19a3

2 个答案:

答案 0 :(得分:2)

您每次必须实例化新的新md5编码器,因为您只需将一些字符串附加到旧字符串并从其串联中获取哈希值即可:

import hashlib
while True:
    OString = input("Input some text here >")
    encoder = hashlib.md5()
    encoder.update(OString.encode())
    hashedString = encoder.hexdigest()
    print(hashedString)

    Ostring = None
    hashedString = None

答案 1 :(得分:2)

解决方案如下:

while True:
    encoder = hashlib.md5()
    OString = input("Input some text here >")
    encoder.update(OString.encode())
    hashedString = encoder.hexdigest()
    print(hashedString)

    Ostring = None
    hashedString = None

基本上,您是在哈希第一个值,因为encoder = hashlib.md5()对象变量在while循环之外。

希望这会有所帮助。