Java,将文件导入MD5消息摘要

Java,将文件导入MD5消息摘要,java,md5,Java,Md5,有谁知道我如何使用“输入”来创建MD5散列,我不知道你会在哪里调用它?任何帮助都将受到极大的欢迎!谢谢:) InputStream输入=新文件InputStream(文件名); StringBuffer hexString=新的StringBuffer(); MessageDigest md=MessageDigest.getInstance(“MD5”); 字节[]散列=md.digest(); for(int i=0;i

有谁知道我如何使用“输入”来创建MD5散列,我不知道你会在哪里调用它?任何帮助都将受到极大的欢迎!谢谢:)

InputStream输入=新文件InputStream(文件名);
StringBuffer hexString=新的StringBuffer();
MessageDigest md=MessageDigest.getInstance(“MD5”);
字节[]散列=md.digest();
for(int i=0;i
您需要将输入流读入字节[]缓冲区,并用它更新MessageDigest:

MessageDigest md = MessageDigest.getInstance("MD5");

byte[] buffer = new byte[8*1024];
while( int read = input.read(buffer) > 0){
   md.update(buffer, 0, read);
}
byte[] hash = md.digest();

这将从磁盘读取
filename
,并将MD5哈希结果放入
hex

InputStream in = new FileInputStream(filename);
MessageDigest md = MessageDigest.getInstance("MD5");

byte[] buf = new byte[8192];
int len;
while ((len = in.read(buf)) != -1) {
    md.update(buf, 0, len);
}
in.close();

byte[] bytes = md.digest();

StringBuilder sb = new StringBuilder(2 * bytes.length);
for (byte b : bytes) {
    sb.append("0123456789ABCDEF".charAt((b & 0xF0) >> 4));
    sb.append("0123456789ABCDEF".charAt((b & 0x0F)));
}
String hex = sb.toString();
谢谢:)真的帮助了我,我了解它的基本原理,但我不是专家,正如你所看到的lol。也感谢其他人。
InputStream in = new FileInputStream(filename);
MessageDigest md = MessageDigest.getInstance("MD5");

byte[] buf = new byte[8192];
int len;
while ((len = in.read(buf)) != -1) {
    md.update(buf, 0, len);
}
in.close();

byte[] bytes = md.digest();

StringBuilder sb = new StringBuilder(2 * bytes.length);
for (byte b : bytes) {
    sb.append("0123456789ABCDEF".charAt((b & 0xF0) >> 4));
    sb.append("0123456789ABCDEF".charAt((b & 0x0F)));
}
String hex = sb.toString();