2017-03-31 74 views
0

处理一个生成MD5散列字符串的旧java项目让我想到了事物的当前状态。当前生成MD5散列(Java 8/9)的方式

有没有一种很好的方式来创建使用当前技术的散列?也许一些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

JDK中没有内置新库。当然,有些第三方库会做得更好,但一段时间以来都是如此。 –

+0

@LouisWasserman谢谢。任何关于第三方库的建议都被认为是最佳实践? – 000000000000000000000

+2

https://github.com/google/guava/wiki/HashingExplained –

回答

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 
    } 
} 

希望这有助于你。