38讲动动手1题
user = input("请输入用户名:")initialuserpassword = {"小甲鱼":"I_love_FishC","不二如是":"FishC5201314"}
while user in initialuserpassword:
print("改用户名已被注册!!!")
user = input("请重新输入用户名:")
password = input("请输入密码:")
initialuserpassword = password
print("-------------\n目前已注册的用户名是:")
for each in initialuserpassword:
print(each)
values = initialuserpassword.values()
print(values)
import hashlib
for pwd in values:
print(pwd)
result = hashlib.md5(b"str(pwd)")
print(result.hexdigest())
以上是我想到的,结果如下
请输入用户名:的加拉法
请输入密码:123
-------------
目前已注册的用户名是:
小甲鱼
不二如是
的加拉法
dict_values(['I_love_FishC', 'FishC5201314', '123'])
I_love_FishC
450c77ff2d8fd9a27d9902f05927c7b6
FishC5201314
450c77ff2d8fd9a27d9902f05927c7b6
123
450c77ff2d8fd9a27d9902f05927c7b6
很显然没有实现题目要求,可是我也不知道加密的那个参数该怎么放,而且加密结果还是重复的 user = input("请输入用户名:")
initialuserpassword = {"小甲鱼":"I_love_FishC","不二如是":"FishC5201314"}
while user in initialuserpassword:
print("该用户名已被注册!!!")
user = input("请重新输入用户名:")
password = input("请输入密码:")
initialuserpassword = password
print("-------------\n目前已注册的用户名是:")
for each in initialuserpassword:
print(each)
values = initialuserpassword.values()
print(values)
import hashlib
for pwd in values:
print(pwd)
result = hashlib.md5(pwd.encode()) # 你那个是对同一个字节串b"str(pwd)"进行hash,当然结果一样了
print(result.hexdigest()) 加密后你直接修改原来的字典即可:
user = input("请输入用户名:")
initialuserpassword = {"小甲鱼":"I_love_FishC","不二如是":"FishC5201314"}
while user in initialuserpassword:
print("该用户名已被注册!!!")
user = input("请重新输入用户名:")
password = input("请输入密码:")
initialuserpassword = password
print("-------------\n目前已注册的用户名是:")
for each in initialuserpassword:
print(each)
import hashlib
for k, v in initialuserpassword.items():
initialuserpassword = hashlib.md5(v.encode()).hexdigest()
print('-------------')
print('加密后:')
print(initialuserpassword) isdkz 发表于 2022-5-2 16:29
pwd 不是一个变量吗?不是取自于values的三个值吗? isdkz 发表于 2022-5-2 16:33
加密后你直接修改原来的字典即可:
厉害,我看看,学习学习,嘿嘿 舍侠 发表于 2022-5-2 17:13
pwd 不是一个变量吗?不是取自于values的三个值吗?
对呀,但是字典里面的键值就是字符串呀,字符串可以使用 encode 方法变成 字节串 isdkz 发表于 2022-5-2 17:14
对呀,但是字典里面的键值就是字符串呀,字符串可以使用 encode 方法变成 字节串
我就是说的加密结果重复的那个,变量不是三个值吗?怎么加密出来是重复的呢,哪里出现错误了? 舍侠 发表于 2022-5-2 17:18
我就是说的加密结果重复的那个,变量不是三个值吗?怎么加密出来是重复的呢,哪里出现错误了?
你用 b"str(pwd)" 的话,就是直接把 str(pwd) 当成一个字节串了呀,
而不是函数调用 str(pwd),同一个字节串当然结果一样了 isdkz 发表于 2022-5-2 17:20
你用 b"str(pwd)" 的话,就是直接把 str(pwd) 当成一个字节串了呀,
而不是函数调用 str(pwd),同一个 ...
好的,那我再试试str(pwd) 舍侠 发表于 2022-5-2 17:23
好的,那我再试试str(pwd)
pwd 本来就是字符串了,没必要用 str,还有 hash.md5 需要字节串,
所以你直接把 str 的返回值传进去是不行的,字符串跟字节串是不一样的 isdkz 发表于 2022-5-2 17:24
pwd 本来就是字符串了,没必要用 str,还有 hash.md5 需要字节串,
所以你直接把 str 的返回值传进去 ...
哦
页:
[1]