文件和字符串的加密工具类md5

原创 2016年08月29日 11:06:02

直接上算法封装的工具类代码:

[html] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. package com.itydl.utils;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileInputStream;  
  5. import java.io.FileNotFoundException;  
  6. import java.io.IOException;  
  7. import java.security.MessageDigest;  
  8. import java.security.NoSuchAlgorithmException;  
  9.   
  10. /**  
  11.  * 针对字符串做的md5加密,以及涉及md5操作的工具类  
  12.  * @author lenovo  
  13.  *  
  14.  */  
  15. public class Md5Utils {  
  16.     /**  
  17.      * 返回文件的md5值  
  18.      * @param path  
  19.      *      要加密的文件的路径  
  20.      * @return  
  21.      *      文件的md5值  
  22.      */  
  23.     public static String getFileMD5(String path){  
  24.         StringBuilder sb = new StringBuilder();  
  25.         try {  
  26.             FileInputStream fis = new FileInputStream(new File(path));  
  27.             //获取MD5加密器  
  28.             MessageDigest md = MessageDigest.getInstance("md5");  
  29.             //类似读取文件  
  30.             byte[] bytes = new byte[10240];//一次读取写入10k  
  31.             int len = 0;  
  32.             while((len = fis.read(bytes))!=-1){//从原目的地读取数据  
  33.                 //把数据写到md加密器,类比fos.write(bytes, 0, len);  
  34.                 md.update(bytes, 0, len);  
  35.             }  
  36.             //读完整个文件数据,并写到md加密器中  
  37.             byte[] digest = md.digest();//完成加密,得到md5值,但是是byte类型的。还要做最后的转换  
  38.             for (byte b : digest) {//遍历字节,把每个字节拼接起来  
  39.                 //把每个字节转换成16进制数  
  40.                 int d = b & 0xff;//只保留后两位数  
  41.                 String herString = Integer.toHexString(d);//把int类型数据转为16进制字符串表示  
  42.                 //如果只有一位,则在前面补0.让其也是两位  
  43.                 if(herString.length()==1){//字节高4位为0  
  44.                     herString = "0"+herString;//拼接字符串,拼成两位表示  
  45.                 }  
  46.                 sb.append(herString);  
  47.             }  
  48.               
  49.         } catch (FileNotFoundException e) {  
  50.             // TODO Auto-generated catch block  
  51.             e.printStackTrace();  
  52.         } catch (NoSuchAlgorithmException e) {  
  53.             // TODO Auto-generated catch block  
  54.             e.printStackTrace();  
  55.         } catch (IOException e) {  
  56.             // TODO Auto-generated catch block  
  57.             e.printStackTrace();  
  58.         }  
  59.           
  60.         return sb.toString();  
  61.     }  
  62.       
  63.     /**  
  64.      * 对传递过来的字符串进行md5加密  
  65.      * @param str  
  66.      *      待加密的字符串  
  67.      * @return  
  68.      *      字符串Md5加密后的结果  
  69.      */  
  70.     public static String md5(String str){  
  71.         StringBuilder sb = new StringBuilder();//字符串容器  
  72.         try {  
  73.             //获取md5加密器.public static MessageDigest getInstance(String algorithm)返回实现指定摘要算法的 MessageDigest 对象。  
  74.             MessageDigest md = MessageDigest.getInstance("MD5");  
  75.             byte[] bytes = str.getBytes();//把要加密的字符串转换成字节数组  
  76.             byte[] digest = md.digest(bytes);//使用指定的 【byte 数组】对摘要进行最后更新,然后完成摘要计算。即完成md5的加密  
  77.               
  78.             for (byte b : digest) {  
  79.                 //把每个字节转换成16进制数  
  80.                 int d = b & 0xff;//只保留后两位数  
  81.                 String herString = Integer.toHexString(d);//把int类型数据转为16进制字符串表示  
  82.                 //如果只有一位,则在前面补0.让其也是两位  
  83.                 if(herString.length()==1){//字节高4位为0  
  84.                     herString = "0"+herString;//拼接字符串,拼成两位表示  
  85.                 }  
  86.                 sb.append(herString);  
  87.             }  
  88.         } catch (NoSuchAlgorithmException e) {  
  89.             // TODO Auto-generated catch block  
  90.             e.printStackTrace();  
  91.         }  
  92.           
  93.         return sb.toString();  
  94.     }  
  95. }  

Java工具类——DES加密和解密工具 I

可以指定不同的密钥对同一字符串进行不同的加密操作,增强加密性能。 package com.app; import java.security.Key; import java.secu...
  • softwave
  • softwave
  • 2013年10月17日 15:33
  • 9236

Android常用加密手段之MD5加密(字符串加密和文件加密)

前言安全问题一直伴随着互联网的成长,如何有效地保护应用程序的数据是每一个开发者都应该考虑和努力的事情。这篇文章介绍Android平台上常用的加密方式之MD5加密。MD5 MD5即Message-D...
  • briblue
  • briblue
  • 2016年10月31日 17:59
  • 7321

Android初级教程:对文件和字符串进行MD5加密工具类

转载请注明出处: 之前写过一篇博文,是针对字符串进行md5加密的。今天对其进行改进,加入针对某个文件,进行md5加密,并获取加密后的值。并把两个功能封装成了工具类,如果有需要这个算法的,可直接使用。...
  • qq_32059827
  • qq_32059827
  • 2016年08月13日 16:50
  • 2137

MD5 工具类 支持文件 字符串加密

二说不说,直接上代码 /** * */ package cn.sigangjun.util; import java.io.File; import java.io.FileInpu...
  • sigangjun
  • sigangjun
  • 2013年08月12日 16:02
  • 621

《java入门第一季》之对文件和字符串进行MD5加密工具类

上一篇介绍了MD5加密算法,之前写的代码有些冗余,而且可读性很差。今天把对文本数据的加密,以及获取文件的md5值做一个封装类。代码如下: package com.itydl.utils; impo...
  • qq_32059827
  • qq_32059827
  • 2016年08月13日 17:04
  • 971

我的Java开发学习之旅------>工具类:Java获取字符串和文件进行MD5值

MD5 即Message-Digest Algorithm 5(信息-摘要算法5 ),是一种用于产生数字签名的单项散列算 法,在1991年由MIT Laboratory for Computer Sc...
  • qq446282412
  • qq446282412
  • 2013年12月07日 17:20
  • 2791

十三、java 常用工具类使用UUid、日期处理、MD5加密

import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.securit...
  • gezi2015129
  • gezi2015129
  • 2017年03月16日 14:43
  • 802

2.2.2 Android Base64,Hex,URLEncoding编码和解码,以及AES,DES,MD5加密和解密的工具类

Android Base64,Hex,URLEncoding编码和解码,以及AES,DES,MD5加密和解密的工具类
  • Rodulf
  • Rodulf
  • 2016年02月18日 23:51
  • 1597

Java中md5加密工具类

以下是整理的两个md5加密工具类(两类之间无联系):一:public class MD5Utils { public static String getMD5(String source) {...
  • qq_34273222
  • qq_34273222
  • 2017年03月17日 18:25
  • 371

何惧MD5简单搞定加密及密码验证工具类

提供两个公开的静态工具方法,会用着两个就够了 getMd5Str对给定的字符串进行加密并返回加密后的密文。 checkPWInDB对给定的明文与数据库中加密的密文进行比较。 其他的就不用...
  • akwolf
  • akwolf
  • 2011年11月29日 15:54
  • 517
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文件和字符串的加密工具类md5
举报原因:
原因补充:

(最多只允许输入30个字)