Java中的MD5实现

时间:2014-02-21 12:23:16

标签: java python java-ee

我正在尝试使用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中实现上述代码吗?

1 个答案:

答案 0 :(得分:1)

  

任何人都可以帮我在Java中实现上述代码吗?

提示:

  1. 可以使用FileInputStream及其skip(long)方法轻松实现读取文件的前N个字节和后N个字节的代码,并调用其read(byte[], int, int)方法两次。使用File.size()获取文件大小。

  2. 用Java生成MD5校验和有很多问题。例如How can I generate an MD5 hash?