2024-10-03 00:26:11 发布
网友
我试图构建一个计算文件哈希值的函数。函数接受参数、文件名和要生成的算法:
def getHashValue(fName, Hash): f = open(fName, 'rb') hashvalue = hashlib.Hash(f.read()).hexdigest f.close() print(fName + str(Hash) + hashvalue)
我的问题是我不能让Hash参数起作用。我的想法是,如果我使用md5,我会得到这个:
安迪,我
必须将哈希参数作为字符串传递并使用getattr。在
像这样:
def getHashValue(fName, hash): f = open(fName, 'rb') hashfun = getattr(hashlib, hash) # Here you assign the function to a variable just to simplify hashvalue = hashfun(f.read()).hexdigest f.close()
然后你可以打电话给: getHashValue(“食品.txt“,”md5“)
你应该得到你想要的结果。但是要小心,您应该处理不存在哈希算法的情况(例如,您使用了“xyz”而不是“md5”或其他东西)。在
您正在寻找^{}:
hashvalue = getattr(hashlib, Hash)(f.read()).hexdigest
不要在函数内部使用hashlib。只需将函数作为参数并使用它。在
def getHashValue(fName,Hash): f = open(fName,'rb') hashvalue = Hash(f.read()).hexdigest f.close() print(fName + str(Hash) + hashvalue)
然后,当您调用此函数时,请使用:
如果要从字符串中获取哈希函数,请使用getattr。在
把这个叫做:
getHashValue(filename, 'md5')
必须将哈希参数作为字符串传递并使用getattr。在
像这样:
然后你可以打电话给: getHashValue(“食品.txt“,”md5“)
你应该得到你想要的结果。但是要小心,您应该处理不存在哈希算法的情况(例如,您使用了“xyz”而不是“md5”或其他东西)。在
您正在寻找^{} :
不要在函数内部使用hashlib。只需将函数作为参数并使用它。在
然后,当您调用此函数时,请使用:
^{pr2}$如果要从字符串中获取哈希函数,请使用getattr。在
把这个叫做:
相关问题 更多 >
编程相关推荐