Java 生成MD5

MD5(Message Digest Algorithm),消息摘要算法,一般用于校验文件的完整性。Java内置已经实现了MD5,与SHA1算法,利用java.security.MessageDigest类就可以获取文件/字符串的MD5或SHA1

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.security.DigestInputStream;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

public class MD5AndSHA1Helper {

/**

* 将字节数组转换为16进制字符串

* @param resultArr

* @return 16进制字符串

*/

private static String byteArrToHex(byte[] byteArr) {

// Initialize the character array, used to store each hexadecimal string

char[] hexDigits = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

// Initialize a char Array, used to form the result string

char[] resultCharArr = new char[byteArr.length*2];

// Traverse the byte array, converted into characters in a character array

int index = 0;

for (byte b : byteArr) {

resultCharArr[index++] = hexDigits[b>>> 4 & 0xf];

resultCharArr[index++] = hexDigits[b & 0xf];

}

return new String(resultCharArr);

}

/**

* 获取字符串的MD5

* @param input

* @return

*/

public static String getStringMD5(String input){

try {

// get MD5 digest

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

// The input String to Byte Array

byte[] inputArr = input.getBytes();

// Updates the digest using the specified byte.

mDigest.update(inputArr);

// Completes the hash computation by performing final operations such as padding.

// The digest is reset after this call is made.

byte[] resultArr = mDigest.digest();

//

return byteArrToHex(resultArr);

} catch (NoSuchAlgorithmException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}

/**

* 获取文件的MD5,可以替换为SHA1

* @param inputFile

* @return

* @throws IOException

*/

@SuppressWarnings("resource")

public static String getFileMD5(String fileUrl) throws IOException{

int bufferSize = 1024*1024;

FileInputStream fileInputStream = null;

DigestInputStream digestInputStream = null;

try {

// 可以替换为"SHA1"

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

fileInputStream = new FileInputStream(fileUrl);

// Creates a digest input stream, using the specified input stream and message digest.

digestInputStream = new DigestInputStream(fileInputStream, mDigest);

byte[] buffer = new byte[bufferSize];

while(digestInputStream.read(buffer)>0);

mDigest = digestInputStream.getMessageDigest();

byte[] resultArr = mDigest.digest();

return byteArrToHex(resultArr);

} catch (NoSuchAlgorithmException e) {

e.printStackTrace();

}finally{

fileInputStream.close();

digestInputStream.close();

}

return null;

}

/**

* 获取String的SHA1

* @param input

* @return

*/

public static String getStringSHA1(String input){

try {

MessageDigest mDigest = MessageDigest.getInstance("SHA1");

byte[] inputArr = input.getBytes();

mDigest.update(inputArr);

byte[] resultArr = mDigest.digest();

return byteArrToHex(resultArr);

} catch (NoSuchAlgorithmException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}

public static void main(String[] args) {

//String result = MD5AndSHA1Helper.getStringMD5("111");

//String result = MD5AndSHA1Helper.getStringSHA1("1111");

String path = "/Users/Dream_Kidd/Downloads/wanda19environment-x64/apache-tomcat-7.0.62-windows-x64.zip";

String result;

try {

result = MD5AndSHA1Helper.getFileMD5(path);

System.out.println(result);

} catch (IOException e) {

e.printStackTrace();

}

}

}

建议,如果过G的文件,不建议使用Java自带的MD5

md5校验 java_Java MD5校验相关推荐

  1. md5加密校验 java_Java实现MD5加密和文件校验

    MD5简介: MD5的全称:Message-Digest Algorithm 5(信息-摘要算法5) MD5的加密方式是一种哈希加密.一些主流的编程语言都已经实现了MD5的加密,所以如果你的程序或是系 ...

  2. 如何对linux镜像md5,Linux系统如何校验SHA1和MD5

    Linux系统如何校验SHA1和MD5?HA1和MD5都是可唯一确定文件的重要标志,只有SHA1或者MD5值一致才能保证下载到的文件是正确的.下面跟着学习啦小编来一起来了解下吧. Linux系统校验S ...

  3. Java实现MD5加密和文件校验

    MD5简介: MD5的全称:Message-Digest Algorithm 5(信息-摘要算法5) MD5的加密方式是一种哈希加密.一些主流的编程语言都已经实现了MD5的加密,所以如果你的程序或是系 ...

  4. 各种校验之MD5校验

    基于LWIP源码中的MD5校验 /************************************************************************** md5.c -- ...

  5. MD5工具类,提供字符串MD5加密(校验)、文件MD5值获取(校验)功能

    import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.nio.Byt ...

  6. 常用的数据校验方式(奇偶,CRC,异或校验, LRC校验,累加和,MD5等校验)概念及源码

    数据校验概念 数据在传输的过程中,会受到各种干扰的影响,如脉冲干扰,随机噪声干扰和人为干扰等,这会使数据产生差错.为了能够控制传输过程的差错,通信系统必须采用有效的检错方案.因此产生了数据校验. 数据 ...

  7. md5 16位加密 java_MD5加密,MD5在线加密,MD5校验

    MD5加密 MD5在线加密 MD5校验 MD5加密工具 请在下面输入需要MD5加密的字符串 16位大写: (双击复制) 16位小写: (双击复制) 32位大写: (双击复制) 32位小写: (双击复制 ...

  8. 文件完整性校验之MD5校验

    文件完整性校验之MD5校验 在现代计算机系统中,文件安全和完整性保护是至关重要的.不仅是个人用户需要保护他们的数据免受恶意软件和黑客攻击,企业和机构也需要确保其敏感数据的完整性和机密性. MD5校验是 ...

  9. md5碰撞Java_java现在MD5加密不安全了吗?

    泻药, 首先,md5 和Java无关,md5是一种摘要算法(和加密有区别),Java是一种编程语言,你可以说可以用Java实现一个md5摘要函数. 其次,重申md5不是加密,而是摘要, 加密只有可以解 ...

最新文章

  1. 转载 Xmlhttprequest对象池
  2. NetworkStream.write只能使用一次,后面再使用无效
  3. SpaceEmacs Rock Day7 学习笔记
  4. docker中安装了RabbitMQ后无法访问其Web管理页面
  5. 使用TensorFlow.js的AI聊天机器人三:改进了文本中的情感检测
  6. 40万亿“新基建”来了!程序员的新翻身机会终于也来了!
  7. 数据结构之散列表实现
  8. Linux中DHCP主配置文件解析
  9. winpe加载raid_在winpe里添加raid驱动
  10. “一路有你”——迷你TXT小说阅读器 V2.8 正式版 发布!
  11. protel常用元件封装大全
  12. 计算机 统计学考研,统计学考研科目有哪些
  13. windows命令修改IP地址
  14. 董明珠成为带货女王,并非格力值得高兴的事情
  15. “网红蜥蜴”背后的创业路,他潜心于宠物蜥蜴的研发与产业化_汇新云
  16. php实例精通txt下载,PHP实例精通(1碟)
  17. 全新动态视频壁纸微信小程序源码下载支持多种分类短视频另外也有静态壁纸
  18. Javascript的常见数据类型以及相应操作
  19. 安装spss破解版以及spss安装之后提示我程序无法启动,因为应用程序的并行配置不正确
  20. 【卡顿检测】深入理解

热门文章

  1. 【SystemVerilog基础】$sformatf()/$sformat() 快速上手指南
  2. iMazing兼容Win和Mac2023免费版iOS设备管理器
  3. win10开机自动进行宽带拨号
  4. mysql shutdown_紧急请教: mysql 无法正常启动 /usr/sbin/mysqld: Shutdown complete
  5. Excel写保护怎么破解
  6. html图片点击左右滑动效果,jQuery点击左右滚动产品图片展示代码
  7. MySQL数据表插入数据
  8. 利用pycharm进行视频分镜处理
  9. GitHub中PR(Pull request)操作
  10. 天平找不同质量小球c语言,有12个小球,其中只有一个球质量和其它的不同。现只有一台托盘天平,怎样只称三次就把质量不同的球找出来...