python的md5加密不一样

import hashlib
#id.txt的内容是010010
with open("id.txt","r") as zd:
    b=zd.readline().strip('\n')
    
print b
m = hashlib.md5()   
m.update(b)
id_md5=m.hexdigest()
print id_md5

n = hashlib.md5() 
n.update('010010')
id_md5=n.hexdigest()
print id_md5

为什么加密之后这2个的值不一样。正确好像是后面那个。

阅读 9.4k
5 个回答

print b的时候,打印出来的内容是什么, 不可能不一样的啊。

看起来可能是编码不一样,或者 Windows 下文本换行符是 \r\n 导致的

我这边是一样的:
输出结果

用的你的代码,Sublime3运行。

read的时候用“rb”试试,以二进制格式读取内容,没有编码转换的问题。
或者读取之后,对读取到的字符串encode('ascii')一下,把它从unicode类型(我猜)转成str类型

终端编写测试,结果是一样的呀。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题