import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * md5工具 */ public class Md5Util { private static final char hexDigits[] ={'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; /** * 计算字符串的md5串 */ public static byte[] md5( String str ){ try { return md5( str.getBytes( "utf-8" ) ); } catch (UnsupportedEncodingException e) { throw new RuntimeException( e ); } } /** * 计算文件的md5串 */ public static byte[] md5( File file ){ byte[] bytes = new byte[ (int)file.length() ]; try { FileInputStream fis = new FileInputStream( file ); fis.read( bytes ); fis.close(); } catch (IOException e) { throw new RuntimeException( e ); } return md5( bytes ); } /** * 计算字节数组的md5串 */ public static byte[] md5( byte[] bytes ){ try { MessageDigest messageDigest = MessageDigest.getInstance( "MD5" ); byte[] bs = messageDigest.digest( bytes ); return bs; } catch (NoSuchAlgorithmException e) { throw new RuntimeException( e ); } } public static String toHexString(byte[] bytes) { if (bytes == null) { return ""; } StringBuilder hex = new StringBuilder(bytes.length * 2); for (byte b : bytes) { hex.append(hexDigits[(b >> 4) & 0x0F]); hex.append(hexDigits[b & 0x0F]); } return hex.toString(); } /** * 方法描述:文件加密添加解串 */ public static String md5File(File file) throws IOException { return toHexString( md5(file)); } }
MessageDigest---md5哈希算法
原创
©著作权归作者所有:来自51CTO博客作者九州天地宽的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Linux 文件管理命令 md5sum awk
Linux 文件管理命令md5sum:MD5 函数值计算和检查 awk:模式匹配语言
Linux命令 md5sum awk -
MessageDigest实现MD5加密算法
使用Java的MessageDigest实现MD5加密算法MD5加密算法的实现原理字符串的MD5加密算法文本的MD5加密工具
java加密 MessageDigest MD5 md5加密 摘要算法 -
哈希算法 MD5
哈希算法 用来产生一些数据片段(例如消息或会话项)的哈希值的算法。使用好的哈希算法,在输入数据中所做
算法 string security 服务器 文档 -
Java 自带的加密类MessageDigest类(加密MD5和SHA)
Java 自带的数据加密类MessageDigest(MD5或SHA加密)
MD5 SHA MessageDigest 加密 git