Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将密码转换为哈希值?_Python_Python 3.x - Fatal编程技术网

Python 如何将密码转换为哈希值?

Python 如何将密码转换为哈希值?,python,python-3.x,Python,Python 3.x,我正在尝试为我的项目创建一个登录系统,我需要对用户密码使用哈希,我不确定如何对变量名进行哈希并将其转换为字节,以给出密码的十六进制结果 尝试使用: hash_object = hashlib.md5(b(password)) 以及: 代码: import hashlib user = {} username = input("What is your username? ") password = input("What is your password? ") hash_object

我正在尝试为我的项目创建一个登录系统,我需要对用户密码使用哈希,我不确定如何对变量名进行哈希并将其转换为字节,以给出密码的十六进制结果

尝试使用:

hash_object = hashlib.md5(b(password))
以及:

代码

import hashlib

user = {}

username = input("What is your username? ")
password = input("What is your password? ")

hash_object = hashlib.md5((password))
print(hash_object.hexdigest())
Traceback (most recent call last):
  File "E:\loginsystem.py", line 8, in <module>
    hash_object = hashlib.md5((password))
TypeError: Unicode-objects must be encoded before hashing
错误

import hashlib

user = {}

username = input("What is your username? ")
password = input("What is your password? ")

hash_object = hashlib.md5((password))
print(hash_object.hexdigest())
Traceback (most recent call last):
  File "E:\loginsystem.py", line 8, in <module>
    hash_object = hashlib.md5((password))
TypeError: Unicode-objects must be encoded before hashing
回溯(最近一次呼叫最后一次):
文件“E:\loginsystem.py”,第8行,在
hash_object=hashlib.md5((密码))
TypeError:在散列之前必须对Unicode对象进行编码

使用
.Encode
方法对密码字符串进行编码

import hashlib

user = {}

username = input("What is your username? ")
password = input("What is your password? ")

hash_object = hashlib.md5(passsword.encode('utf8'))
print(hash_object.hexdigest())

我推荐这条很棒的线索,它可能会解决一些问题:


另外-不要使用md5散列密码。请参阅此处:以获得更好的建议。如果您只是在学习安全性-很好。但是,如果你打算向公共互联网/实际用户发布某个内容,那么就不要进行自己的身份验证-将其交给专家。因此,它的utf8权限TTT LOL感谢您的帮助,我尝试过,但出于某种原因,此错误消息会弹出回显(上次调用):文件“E:/hash\u function\u example.py”,第8行,在hash_object=hashlib.md5(password.encode('uft-8'))中,LookupError:未知编码:uft-8非常感谢您对我的MANNo问题的关注,很高兴提供帮助!