繁体   English   中英

while循环Python上的编码问题

[英]Encoding Issue on a while loop Python

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

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

有人可以帮忙吗!!!!

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

您每次必须实例化新的新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

解决方法如下:

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循环之外。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM