当前位置: 首页 > 工具软件 > FileMD5Hash > 使用案例 >

测试单个php文件获取的值,获取单个文件的MD5值

衡子琪
2023-12-01

版本0

/**

* 获取单个文件的MD5值!

*

* @param file

* @return

*/

public static String getFileMD5(File file) {

if (!file.isFile()) {

return null;

}

MessageDigest digest = null;

FileInputStream in = null;

byte buffer[] = new byte[1024];

int len;

try {

digest = MessageDigest.getInstance("MD5");

in = new FileInputStream(file);

while ((len = in.read(buffer, 0, 1024)) != -1) {

digest.update(buffer, 0, len);

}

in.close();

} catch (Exception e) {

e.printStackTrace();

return null;

}

BigInteger bigInt = new BigInteger(1, digest.digest());

return bigInt.toString(16).toUpperCase();

}

版本1(解决版本0的方法:当文件的md5值是0开头的时候会出问题,之前的方法会把开头的0去掉)

//解决上面方法:当文件的md5值是0开头的时候会出问题,之前的方法会把开头的0去掉

public static String getFileMD5(File file) {

if (!file.isFile()) {

return null;

}

MessageDigest digest = null;

FileInputStream in = null;

byte buffer[] = new byte[1024];

int len;

try {

digest = MessageDigest.getInstance("MD5");

in = new FileInputStream(file);

while ((len = in.read(buffer, 0, 1024)) != -1) {

digest.update(buffer, 0, len);

}

in.close();

} catch (Exception e) {

e.printStackTrace();

return null;

}

String fileMD5 = bytesToHexString(digest.digest());

if (null == fileMD5) {

return null;

}

fileMD5 = fileMD5.toUpperCase();

LogHelper.e("ATU", "文件MD5值:" + fileMD5);

return fileMD5;

}

public static String bytesToHexString(byte[] src) {

StringBuilder stringBuilder = new StringBuilder("");

if (src == null || src.length <= 0) {

return null;

}

for (int i = 0; i < src.length; i++) {

int v = src[i] & 0xFF;

String hv = Integer.toHexString(v);

if (hv.length() < 2) {

stringBuilder.append(0);

}

stringBuilder.append(hv);

}

return stringBuilder.toString();

}

 类似资料: