Java获取文件SHA1、MD5、CRC32
Java获取文件SHA1、MD5、CRC32
胖子没烦恼 发表于1年前
Java获取文件SHA1、MD5、CRC32
  • 发表于 1年前
  • 阅读 70
  • 收藏 2
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: Java SHA1 MD5 CRC32

获取文件的SHA1值

public String getFileSHA1(File file) {
		MessageDigest md = null;
		FileInputStream fis = null;
		StringBuilder sha1Str = new StringBuilder();
		try {
			fis = new FileInputStream(file);
			MappedByteBuffer mbb = fis.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, file.length());
			md = MessageDigest.getInstance("SHA-1");
			md.update(mbb);
			byte[] digest = md.digest();
			String shaHex = "";
			for (int i = 0; i < digest.length; i++) {
				shaHex = Integer.toHexString(digest[i] & 0xFF);
				if (shaHex.length() < 2) {
					sha1Str.append(0);
				}
				sha1Str.append(shaHex);
			}
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (fis != null) {
				try {
					fis.close();
				} catch (IOException e) {
				}
			}
		}
		return sha1Str.toString();
	}

获取文件的MD5值

public static String getFileMd5(File file) {
		String md5Str = null;
		FileInputStream fis = null;
		try {
			fis = new FileInputStream(file);
			MappedByteBuffer mbb = fis.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, file.length());

			MessageDigest md5 = MessageDigest.getInstance("MD5");
			md5.update(mbb);

			BigInteger bi = new BigInteger(1, md5.digest());
			md5Str = bi.toString(16);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		} finally {
			if (fis != null) {
				try {
					fis.close();
				} catch (IOException e) {
				}
			}
		}

		return md5Str;
	}

获取文件的 CRC32值

public String getFileCRC32(File file) {
		FileInputStream is = null;
		CheckedInputStream ckis = null;
		String crc32Str = null;

		try {
			CRC32 crc32 = new CRC32();
			is = new FileInputStream(file);

			ckis = new CheckedInputStream(is, crc32);

			byte[] buffer = new byte[1024];

			while ((ckis.read(buffer)) != -1) {
			}
			crc32Str = Long.toHexString(crc32.getValue());
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (is != null) {
				try {
					is.close();
				} catch (IOException e) {
				}
			}
			if (ckis != null) {
				try {
					ckis.close();
				} catch (IOException e) {
				}
			}
		}
		return crc32Str;
	}

 

标签: Java CRC32 MD5 SHA1
共有 人打赏支持
粉丝 2
博文 5
码字总数 868
×
胖子没烦恼
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: