鱼C论坛

 找回密码
 立即注册
查看: 1266|回复: 2

[已解决]代码求助

[复制链接]
发表于 2023-8-13 17:18:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. """提升网站的安全性"""

  2. #网站不会保存用户的密码明文
  3. #用户的密码在传输到服务器数据库之前,会被单向加密为密文

  4. #下面是MD5的单向加密方式
  5. #import hashlib
  6. #result = hashlib.md5(b"FishC")
  7. #print(result.hexdigest())
  8. #9d22182e926ca703cd0f5926e7d57782

  9. #下面利用MD5进行单向加密
  10. import hashlib
  11. names = {"小甲鱼":"I_love_FishC", "不二如是":"FishC5201314"}
  12. names_only = ["小甲鱼", "不二如是"]
  13. resluts = []

  14. name = input("请输入用户名:")
  15. while True:
  16.     if name in names:
  17.         print("该用户名已被注册!")
  18.         name = input("请重输入用户名:")
  19.         continue
  20.     else:
  21.         break
  22. key = input("请输入密码:")
  23. names[name] = key
  24. names_only.append(name)

  25. print("----------------")
  26. print("目前已注册的用户有:")
  27. for each in names.values():
  28.     resluts.append(hashlib.md5(bytes(each)))

  29. for i in range(len(names_only)):
  30.     print(names_only[i], ":", results[i].hexdigest())
  31.    
  32.    

复制代码


问题在于b字符串的输入怎么进行?实例给的是
  1. b"FsihC"
复制代码
这种,但是怎么才能完呢?
最佳答案
2023-8-13 17:19:02
在Python中,b前缀表示字符串是字节字符串(bytes)。b"FishC"表示将字符串"FishC"转换为字节字符串。

如果你想将用户输入的字符串转换为字节字符串,可以使用字符串的encode()方法来实现。例如:

  1. name = input("请输入用户名:").encode()
复制代码


在上述代码中,input()函数接收用户输入的字符串,并使用.encode()方法将其转换为字节字符串。

同样,你可以在需要的地方使用.encode()方法来将字符串转换为字节字符串。例如:

  1. resluts.append(hashlib.md5(each.encode()))
复制代码


这样就可以将each字符串转换为字节字符串,并使用hashlib.md5()函数进行MD5加密操作。

注意,在使用用户输入的字符串进行加密操作时,需要注意编码方式。常见的编码方式包括UTF-8、GBK等,具体使用哪种编码方式取决于你的需求和场景。

希望上述解释对你有所帮助!
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-13 17:18:49 | 显示全部楼层
在Python中,前缀为"b"的字符串表示字节字符串(bytes)。字节字符串是以字节为单位进行操作的,而不是以字符为单位。在这个例子中, b"FishC" 表示将字符串"FishC"转换为字节字符串。

要根据用户输入进行单向加密,你需要将输入的字符串转换为字节字符串。可以使用字符串的 encode() 方法将其转换为字节字符串。例如,将 name 和 key 转换为字节字符串的代码如下:

  1. name = input("请输入用户名:").encode()
  2. key = input("请输入密码:").encode()
复制代码


这样,你就可以使用 hashlib.md5() 对字节字符串进行单向加密了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-13 17:19:02 | 显示全部楼层    本楼为最佳答案   
在Python中,b前缀表示字符串是字节字符串(bytes)。b"FishC"表示将字符串"FishC"转换为字节字符串。

如果你想将用户输入的字符串转换为字节字符串,可以使用字符串的encode()方法来实现。例如:

  1. name = input("请输入用户名:").encode()
复制代码


在上述代码中,input()函数接收用户输入的字符串,并使用.encode()方法将其转换为字节字符串。

同样,你可以在需要的地方使用.encode()方法来将字符串转换为字节字符串。例如:

  1. resluts.append(hashlib.md5(each.encode()))
复制代码


这样就可以将each字符串转换为字节字符串,并使用hashlib.md5()函数进行MD5加密操作。

注意,在使用用户输入的字符串进行加密操作时,需要注意编码方式。常见的编码方式包括UTF-8、GBK等,具体使用哪种编码方式取决于你的需求和场景。

希望上述解释对你有所帮助!
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-3 11:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表