如何在Java中获取文件的md5sum?
每次应用程序发生更改时,我都需要在应用程序中重新加载一个文件 我正在检查它的lastModified,我还想在处理它之前检查它的md5sum 我正在使用Spring框架,以防里面有有用的东西 检查这个的最好方法是什么?有我应该检查的示例/库吗如何在Java中获取文件的md5sum?,java,spring,md5sum,Java,Spring,Md5sum,每次应用程序发生更改时,我都需要在应用程序中重新加载一个文件 我正在检查它的lastModified,我还想在处理它之前检查它的md5sum 我正在使用Spring框架,以防里面有有用的东西 检查这个的最好方法是什么?有我应该检查的示例/库吗 谢谢。您必须读入整个文件并将其提供给的实例。您必须读入整个文件并将其提供给的实例。您可以使用Java内置函数执行此操作: MessageDigest digest = java.security.MessageDigest.getInstance("MD5
谢谢。您必须读入整个文件并将其提供给的实例。您必须读入整个文件并将其提供给的实例。您可以使用Java内置函数执行此操作:
MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
digest.update(...your data here...);
byte[] hash = digest.digest();
或者尝试另一种实现,当然更快(根据其名称:)
编辑:
他们似乎提供了md5sum文件,这正是您想要的
你想要额外的方便方法吗
用于哈希文件
您可以使用Java内置函数执行此操作:
MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
digest.update(...your data here...);
byte[] hash = digest.digest();
或者尝试另一种实现,当然更快(根据其名称:)
编辑:
他们似乎提供了md5sum文件,这正是您想要的
你想要额外的方便方法吗
用于哈希文件
本文中的解释和代码片段可能会对您有所帮助 仅就记录而言,在大多数使用bigInteger的代码段中都存在一个常见问题,bigInteger类会删除字符串开头的额外零,因此您可能希望添加这样的检查
String res =new BigInteger(1,m.digest()).toString(16);
if (res.length() == 31)
res = "0" + res;
本文中的解释和代码片段可能会对您有所帮助 仅就记录而言,在大多数使用bigInteger的代码段中都存在一个常见问题,bigInteger类会删除字符串开头的额外零,因此您可能希望添加这样的检查
String res =new BigInteger(1,m.digest()).toString(16);
if (res.length() == 31)
res = "0" + res;
InputStream in=新文件InputStream(文件名);
MessageDigest md5=MessageDigest.getInstance(“md5”);
字节[]缓冲区=新字节[1024];
while(true)
{
int c=in.read(缓冲区);
如果(c>0)
md5.更新(缓冲区,0,c);
else如果(c<0)
打破
}
in.close();
字节[]结果=md5.digest();
InputStream in=新文件InputStream(文件名);
MessageDigest md5=MessageDigest.getInstance(“md5”);
字节[]缓冲区=新字节[1024];
while(true)
{
int c=in.read(缓冲区);
如果(c>0)
md5.更新(缓冲区,0,c);
else如果(c<0)
打破
}
in.close();
字节[]结果=md5.digest();
使用该类,您可以找到一个好的示例。使用该类,您可以找到一个好的示例。使用了StringUtils.leftPad,但感谢警告。使用了StringUtils.leftPad,但感谢警告。