gpt4 book ai didi

Python 八进制转义字符串

转载 作者:太空宇宙 更新时间:2023-11-04 03:36:39 25 4
gpt4 key购买 nike

我正在做一个 Web 应用程序登录自动化。 Web 应用程序前缀和后缀几个八进制转义字符和密码,在客户端对密码进行 md5 哈希并发送到服务器。

所以当我使用 Java Script 对字符串进行 Md5 加密时,我得到以下结果。

Web 应用程序使用 https://ideone.com/2C1b5用于客户端 MD5 转换的 JS 库。 hexMD5() 属于该库。

enter image description here

但是当我尝试使用 python 做同样的事情时,我得到了不同的结果。

import hashlib
def getMd5(string):
m = hashlib.md5()
m.update(string)
return m.hexdigest()
prefix = "\051"
suffix = "\341\303\026\153\155\271\161\166\030\054\324\011\046\035\344\274"

prefix = unicode(prefix,'unicode-escape')
suffix = unicode(suffix,'unicode-escape')
salted = prefix+"HELLO"+suffix
print getMd5(salted.encode('utf8'))

结果

c7862e873e9bc54a93aec58c199cda37

任何人都可以解释一下我在这里做错了什么吗?

最佳答案

import hashlib
def getMd5(string):
m = hashlib.md5()
m.update(string)
return m.hexdigest()
prefix = "\051"
suffix ="\341\303\026\153\155\271\161\166\030\054\324\011\046\035\344\274"


salted = prefix+"HELLO"+suffix
print getMd5(salted)

37a0c199850b36090b439c3ac152fd70

不使用 unicode 会产生与 Javascript 相同的输出。

如果我正确理解您的评论:

len(r"\051" == 4 # use raw string r
len("\051") == 1

关于Python 八进制转义字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28747850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com