Java获取字符串(16bit,32bit)和文件MD5工具
来源:互联网 发布:bi数据产品经理 编辑:程序博客网 时间:2024/06/05 05:10
自己搜集整理的MD5的Java工具类,支持16位32位64位的字符串大小写MD5,使用Apache的库实现文件的MD5
还有很多整理的工具类,项目地址:https://github.com/KingBoyWorld/aurora.git,下载后切换到utils_feature分支,Common模块中有相应的工具包。
package com.kingboy.common.utils.md5;import org.apache.commons.codec.digest.DigestUtils;import org.apache.poi.util.IOUtils;import sun.misc.BASE64Encoder;import java.io.*;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/** * MD5,String-File * @Author kingboy * @Date 2017/7/22 下午1:00 * @Description MD5Utils is used to */public class MD5Utils { private static final String ALGORITHM_MD5 = "MD5"; private static final String UTF_8 = "UTF-8"; /** * MD5 16bit 小写. * @param readyEncryptStr ready encrypt string * @return String encrypt result string * @throws NoSuchAlgorithmException * */ public static final String MD5_16bit_lower(String readyEncryptStr) throws NoSuchAlgorithmException { if(readyEncryptStr != null){ return MD5Utils.MD5_32bit_lower(readyEncryptStr).substring(8, 24); }else{ return null; } } /** * MD5 16bit 大写. * @param readyEncryptStr ready encrypt string * @return String encrypt result string * @throws NoSuchAlgorithmException * */ public static final String MD5_16bit_upper(String readyEncryptStr) throws NoSuchAlgorithmException { return MD5_16bit_lower(readyEncryptStr).toUpperCase(); } /** * MD5 32bit 小写. * @param readyEncryptStr ready encrypt string * @return String encrypt result string * @throws NoSuchAlgorithmException * */ public static final String MD5_32bit_lower(String readyEncryptStr) throws NoSuchAlgorithmException{ if(readyEncryptStr != null){ //Get MD5 digest algorithm's MessageDigest's instance. MessageDigest md = MessageDigest.getInstance(ALGORITHM_MD5); //Use specified byte update digest. md.update(readyEncryptStr.getBytes()); //Get cipher text byte [] b = md.digest(); //The cipher text converted to hexadecimal string StringBuilder su = new StringBuilder(); //byte array switch hexadecimal number. for(int offset = 0,bLen = b.length; offset < bLen; offset++){ String haxHex = Integer.toHexString(b[offset] & 0xFF); if(haxHex.length() < 2){ su.append("0"); } su.append(haxHex); } return su.toString(); }else{ return null; } } /** * MD5 32bit 大写. * @param readyEncryptStr ready encrypt string * @return String encrypt result string * @throws NoSuchAlgorithmException * */ public static final String MD5_32bit_upper(String readyEncryptStr) throws NoSuchAlgorithmException{ return MD5_32bit_lower(readyEncryptStr).toUpperCase(); } /** * MD5 64bit 大写. * @param readyEncryptStr ready encrypt string * @return String encrypt result string * @throws NoSuchAlgorithmException * @throws UnsupportedEncodingException * */ public static final String MD5_64bit(String readyEncryptStr) throws NoSuchAlgorithmException, UnsupportedEncodingException { MessageDigest md = MessageDigest.getInstance(ALGORITHM_MD5); BASE64Encoder base64Encoder = new BASE64Encoder(); return base64Encoder.encode(md.digest(readyEncryptStr.getBytes(UTF_8))); } /** * 获取文件MD5,使用apache的org.apache.commons.codec.digest.DigestUtils; * @param filePath 文件路径 * @return String */ public static String MD5_File(String filePath) throws Exception { try (FileInputStream fis= new FileInputStream(filePath)) { return DigestUtils.md5Hex(IOUtils.toByteArray(fis)); } } public static void main(String[] args) throws Exception { System.out.println("16位小写:" + MD5Utils.MD5_16bit_lower("king")); System.out.println("16位大写:" + MD5Utils.MD5_16bit_upper("king")); System.out.println("32位小写:" + MD5Utils.MD5_32bit_lower("king")); System.out.println("32位大写:" + MD5Utils.MD5_32bit_upper("king")); System.out.println("64位大写:" + MD5Utils.MD5_64bit("king")); System.out.println("FILEMD5:" + MD5Utils.MD5_File("/Users/kingboy/Desktop/1.txt")); }}
阅读全文
0 0
- Java获取字符串(16bit,32bit)和文件MD5工具
- 我的Java开发学习之旅------>工具类:Java获取字符串和文件进行MD5值
- Java的字符串md5加密和文件md5
- 【语言-C++】MD5加密算法 32bit 16bit 源码
- Java计算字符串和文件的MD5与SHA1
- MD5加密字符串和文件的算法
- linux md5 加密字符串和文件方法
- linux md5 加密字符串和文件方法
- linux md5 加密字符串和文件方法
- 计算字符串和文件的MD5值
- 生成字符串和文件的MD5
- MD5原理及加密字符串和文件
- Java实现MD5加密和文件校验
- Java 32-bit VS 64-bit
- 32bit转16bit防溢出
- 一个可以计算字符串和文件的MD5的类
- python中对字符串和文件才md5
- 安装ANDROID开发工具(FOR WINDOWS 32BIT/64BIT)
- 【三子棋】用c语言编写一个小游戏---三子棋
- 3-2 UBUNTU主机配置
- linux学习之旅(六)&玩转权限
- 学习笔记TF026:多层感知机
- Android设置视频背景
- Java获取字符串(16bit,32bit)和文件MD5工具
- CF 782B 和 HDU 4717 经典移点问题 【 二分 和 三分 时间】
- Android Studio 小技巧/快捷键 合集
- Qt中显示opencv生成图片
- Python readlines and readline
- hdu5222 Exploration【并查集+拓扑排序】
- 摆积木
- C
- 系统服务