当前生成MD5哈希的方法(Java 8/9)

时间:2017-03-31 21:31:45

标签: java hash java-8 md5 java-9

处理生成MD5哈希字符串的旧java项目让我想知道当前的状态。

有没有一种使用当前技术创建此类哈希的好方法?也许是Java 8/9的一些新库?

之前我生成MD5哈希的方式是:

 import java.security.*;
 import java.math.*;

 public class MD5 {
    public static void main(String args[]) throws Exception{
       String s="This is a test";
       MessageDigest m=MessageDigest.getInstance("MD5");
       m.update(s.getBytes(),0,s.length());
       System.out.println("MD5: "+new BigInteger(1,m.digest()).toString(16));
   }
}

感谢。

1 个答案:

答案 0 :(得分:1)

我最近构建了我的恶意软件分析项目,我在其中为目录和子目录中的所有文件生成MD5哈希。

我使用Apache Commons Codec

以下是代码的相关部分:

for (File file : fList) {
    if (file.isFile()) {
        try {
                fin = new FileInputStream(file);
                String digest = DigestUtils.md5Hex(fin); //used to get MD5 
                String path = file.getAbsolutePath(); //return full path
                hash.put(path, digest); //put path and MD5 in map
                fin.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
    } else if (file.isDirectory()) {
        listFiles(file.getAbsolutePath()); // recursivily call
    }
}

希望这会对你有所帮助。