我正在尝试使用SubDB api在Java中编写Subtitle finder的代码。由于我不太了解python,我不明白他们在做什么来计算字符串的哈希值。通过获取视频文件的第一个和最后一个64kb来组合散列,将所有这些放在一起并生成结果数据的md5。 name是文件名。
def get_hash(name):
readsize = 64 * 1024
with open(name, 'rb') as f:
size = os.path.getsize(name)
data = f.read(readsize)
f.seek(-readsize, os.SEEK_END)
data += f.read(readsize)
return hashlib.md5(data).hexdigest()
任何人都可以帮我在Java中实现上述代码吗?
答案 0 :(得分:1)
任何人都可以帮我在Java中实现上述代码吗?
提示:
可以使用FileInputStream
及其skip(long)
方法轻松实现读取文件的前N个字节和后N个字节的代码,并调用其read(byte[], int, int)
方法两次。使用File.size()
获取文件大小。
用Java生成MD5校验和有很多问题。例如How can I generate an MD5 hash?