我有一个文件,每次更改时我都需要在我的应用程序中重新加载。
我正在检查它的lastModified,我也想在处理之前检查它的md5sum。
我正在使用Spring框架,以防有一些有用的东西。
检查这个的最佳方法是什么?我应该检查的任何示例/库?
感谢。
答案 0 :(得分:2)
此link中的说明和代码段可能对您有所帮助
仅仅是为了记录,大多数使用bigInteger的片段都存在一个常见问题,bigInteger类会在字符串的开头删除额外的零,因此您可能希望添加类似的检查
String res =new BigInteger(1,m.digest()).toString(16);
if (res.length() == 31)
res = "0" + res;
答案 1 :(得分:1)
InputStream in = new FileInputStream(filename);
MessageDigest md5 = MessageDigest.getInstance("MD5");
byte[] buffer = new byte[1024];
while (true)
{
int c = in.read(buffer);
if (c > 0)
md5.update(buffer, 0, c);
else if (c < 0)
break;
}
in.close();
byte[] result = md5.digest();
答案 2 :(得分:0)
您必须阅读整个文件并将其提供给MessageDigest
的实例。
答案 3 :(得分:0)
您可以使用Java内置函数执行此操作:
MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
digest.update(...your data here...);
byte[] hash = digest.digest();
或尝试其他实现here,当然更快(根据它的名字:)
编辑:
他们似乎提供了文件md5sum,正是你想要的!
您需要额外的便利方法 用于散列文件......
String hash = MD5.asHex(MD5.getHash(new File(filename)));
答案 4 :(得分:0)
使用MessageDigest课程,你可以找到一个很好的例子here。