Python 保留对不同哈希md5的更改

Python 保留对不同哈希md5的更改,python,python-2.7,hash,md5,ftplib,Python,Python 2.7,Hash,Md5,Ftplib,我如何为“lscam”生成实际的MD5哈希,因为上面的代码一直在给我“奇怪的”MD5哈希代码,而这甚至不是“lscam”的实际哈希。有人可以帮忙吗?您的lscam变量是isoformat中datetime.datetime.now()和cam的串联 因为每次运行脚本时,now()显然会返回不同的值,所以md5每次都是不同的 但是,如果使用相同的lscam值计算两次散列,将得到相同的结果(如预期的那样) 小例子: import ftplib import hashlib import httpli

我如何为“lscam”生成实际的MD5哈希,因为上面的代码一直在给我“奇怪的”MD5哈希代码,而这甚至不是“lscam”的实际哈希。有人可以帮忙吗?

您的
lscam
变量是isoformat中
datetime.datetime.now()
cam
的串联

因为每次运行脚本时,
now()
显然会返回不同的值,所以md5每次都是不同的

但是,如果使用相同的
lscam
值计算两次散列,将得到相同的结果(如预期的那样)

小例子:

import ftplib
import hashlib
import httplib
import pytz
import datetime

localtime = datetime.datetime.now(pytz.timezone('Asia/Singapore')).isoformat()
cam = "hi5"
lscam = localtime + cam
ftp = ftplib.FTP('localhost','username','password')
ftp.cwd('Server')
m=hashlib.md5()
file = open('Desktop/frame00000.png','rb')
m.update(lscam)
dd=m.hexdigest()
ftp.storbinary('STOR '+dd, file)
file.close()
ftp.quit()

问题仍然存在,在字符串中使用
now()
,因此总是不同的。md5散列反映了这些差异,从来都不是相同的。@KevinKai在我的答案中添加了一个小例子。如果还不清楚,请告诉我。即使是不同的MD5哈希,但他们不会为我生成实际的MD5哈希。。我向这个网站核实:@KevinKai您是否在您的网站和程序中添加了完全相同的字符串?您应该
打印(lscam)
以确保。不太可能返回错误的md5(如果不是不可能的话)
>>> import datetime
>>> import pytz
>>> import hashlib
>>> now = datetime.datetime.now(pytz.timezone('Asia/Singapore')).isoformat()
>>> later = datetime.datetime.now(pytz.timezone('Asia/Singapore')).isoformat()
>>> m1 = hashlib.md5()
>>> m2 = hashlib.md5()
>>> m1.update(now)
>>> m2.update(later)
>>> m1.digest() == m2.digest()
False