import hashlib
def getHash(file_path):
f = open(file_path, "rb")
line = f.readline()
hash = hashlib.md5()
while(line):
hash.update(line.encode('utf8'))
line = f.readline()
f.close()
return hash.hexdigest()
def IsHashEqual(file_path1, file_path2):
str1 = getHash(file_path1)
str2 = getHash(file_path2)
return str1 == str2
if __name__ == '__main__':
if IsHashEqual("E:\\GIT\\1.txt", "E:\\GIT\\2.txt"):
print "文件内容相同!"
else:
print "文件内容不同!"
def _record_device_hash(device_ini_path, base_ini_path):
ini = load_config(device_ini_path)
if not ini.has_section('DeviceSignature'):
ini.add_section('DeviceSignature')
ini.write(open(device_ini_path, "w", encoding="utf-8"))
device_hash = _get_device_hash(device_ini_path, base_ini_path)
write_config(device_ini_path, "DeviceSignature", "signature", device_hash)
def _get_device_hash():
import hashlib
axis_cards = _get_axiscards()
ini = basic.sysData("ini/base.ini")
manufacturer = ini['sys']['manufacturer']
axis_cards.append(manufacturer)
model = ini['sys']['model']
axis_cards.append(model)
secret_key = 'you never guess'
axis_cards.append(secret_key)
devices_str = ','.join(axis_cards)
device_hash = hashlib.md5()
device_hash.update(devices_str.encode('utf-8'))
return device_hash.hexdigest()
def _is_hash_equal():
hash1 = _get_device_hash()
ini = basic.sysData("ini/device.ini")
if ini.has_option('DeviceSignature', 'signature'):
hash2 = ini['DeviceSignature']['signature']
if hash2 is None:
return False
return hash1 == hash2
else:
return False