hashlib python2 vs python3

发布于 2025-02-10 21:28:16 字数 724 浏览 0 评论 0原文

提示:所有变量都是字符串。我正在使用hashlib lib

from hashlib import sha256, md5
S2_SRP_MAGIC1 = "[!~esTo0}"
S2_SRP_MAGIC2 = "taquzaph_?98phab&junaj=z=kuChusu"
S2_SALT2 = "p^^^&bjRlXi4B=A1y.@Vz)"
password = "asd"

在Python 2中效果很好:

p = sha256(md5(md5(password + S2_SALT2 + S2_SRP_MAGIC1) + S2_SRP_MAGIC2))

当我将此线移植到Python3时,响应是:

TypeError: Unicode-objects must be encoded before hashing

我进行了一些研究并修改了这条线,所以它不会给我任何错误,但我不确定是否这样做正确,因为SRP Auth不起作用。 我的新线:

p = sha256((md5((md5(password.encode()).hexdigest() + S2_SALT2 + S2_SRP_MAGIC1).encode()).hexdigest() + S2_SRP_MAGIC2).encode()).hexdigest()

这是完全错误的还是正确的?

Hint: all variables are strings. and im using the hashlib lib

from hashlib import sha256, md5
S2_SRP_MAGIC1 = "[!~esTo0}"
S2_SRP_MAGIC2 = "taquzaph_?98phab&junaj=z=kuChusu"
S2_SALT2 = "p^^^&bjRlXi4B=A1y.@Vz)"
password = "asd"

this line worked fine in python 2:

p = sha256(md5(md5(password + S2_SALT2 + S2_SRP_MAGIC1) + S2_SRP_MAGIC2))

When i port this line to python3 the response is:

TypeError: Unicode-objects must be encoded before hashing

I did a little research and modified the line so it wont give me any errors, but im not sure if i did it correct, because the srp auth isnt working.
my new line:

p = sha256((md5((md5(password.encode()).hexdigest() + S2_SALT2 + S2_SRP_MAGIC1).encode()).hexdigest() + S2_SRP_MAGIC2).encode()).hexdigest()

Is that completly wrong or is it correct?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文