文件和字符串的加密工具类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. }  
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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

二说不说,直接上代码 /** * */ package cn.sigangjun.util; import java.io.File; import java.io.FileInpu...

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

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

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

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

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

提供两个公开的静态工具方法,会用着两个就够了 getMd5Str对给定的字符串进行加密并返回加密后的密文。 checkPWInDB对给定的明文与数据库中加密的密文进行比较。 其他的就不用...

MD5加密工具类

package util; import java.security.MessageDigest; /***********************************************...

Java中md5加密工具类

以下是整理的两个md5加密工具类(两类之间无联系):一:public class MD5Utils { public static String getMD5(String source) {...

MD5 加密工具类

import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.Unsu...

java md5 sha 加密 的使用方法 工具类 MessageDigest

java md5 sha 加密 的使用方法 工具类 MessageDigest

MD5加密工具类

public class Md5Util { /* 下面这些S11-S44实际上是一个4*4的矩阵,在原始的C实现中是用#define 实现的, 这里把它们实现成为...

MD5加密工具类

这是一个个人认为非常好用的使用MD5+salt加密的工具类,一部分代码由网上搜索而得,一部分自己修改添加之后而得。使用这个工具类,非常简单,从前台拿到密码passwd,直接HexUtil.getEnc...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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