一般进行文件下载需求时,都会附带有文件完整性和正确性校验,避免下载的文件不完整或者被第三方劫持注入,貌似很多都是采用MD5校验,但也有采用sha1或者sha256校验,最近做的两个项目中刚好先后遇到了md5和sha256校验,跟了一下MessageDigest源码,提取出工具类供以后使用,同时在此贡献出来,如有不正确的地方欢迎指正。
1、采用枚举定义需要校验的类型,屏蔽直接传入不支持的校验方式,增加容错率:
public enum TypeEnum {
MD5, SHA1, SHA256
}
2、获取指定文件的md5/sha1/sha256
private static String getFileSignature(File file, TypeEnum typeEnum) {
MessageDigest digest;
String type = "";
switch (typeEnum) {
case MD5:
type = "MD5";
break;
case SHA1:
type = "SHA-1";
break;
case SHA256:
type = "SHA-256";
break;
}
if (TextUtils.isEmpty(type)) {
LogUtil.