Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中获取文件的md5sum?_Java_Spring_Md5sum - Fatal编程技术网

如何在Java中获取文件的md5sum?

如何在Java中获取文件的md5sum?,java,spring,md5sum,Java,Spring,Md5sum,每次应用程序发生更改时,我都需要在应用程序中重新加载一个文件 我正在检查它的lastModified,我还想在处理它之前检查它的md5sum 我正在使用Spring框架,以防里面有有用的东西 检查这个的最好方法是什么?有我应该检查的示例/库吗 谢谢。您必须读入整个文件并将其提供给的实例。您必须读入整个文件并将其提供给的实例。您可以使用Java内置函数执行此操作: MessageDigest digest = java.security.MessageDigest.getInstance("MD5

每次应用程序发生更改时,我都需要在应用程序中重新加载一个文件

我正在检查它的lastModified,我还想在处理它之前检查它的md5sum

我正在使用Spring框架,以防里面有有用的东西

检查这个的最好方法是什么?有我应该检查的示例/库吗


谢谢。

您必须读入整个文件并将其提供给的实例。

您必须读入整个文件并将其提供给的实例。

您可以使用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,但感谢警告。