Android初级教程:对文件和字符串进行MD5加密工具类
2016-08-13 16:50
323 查看
转载请注明出处:http://blog.csdn.net/qq_32059827/article/details/52200008
点击打开链接
之前写过一篇博文,是针对字符串进行md5加密的。今天对其进行改进,加入针对某个文件,进行md5加密,并获取加密后的值。并把两个功能封装成了工具类,如果有需要这个算法的,可直接使用。
直接上算法封装的工具类代码:
点击打开链接
之前写过一篇博文,是针对字符串进行md5加密的。今天对其进行改进,加入针对某个文件,进行md5加密,并获取加密后的值。并把两个功能封装成了工具类,如果有需要这个算法的,可直接使用。
直接上算法封装的工具类代码:
package com.itydl.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * 针对字符串做的md5加密,以及涉及md5操作的工具类 * @author lenovo * */ public class Md5Utils { /** * 返回文件的md5值 * @param path * 要加密的文件的路径 * @return * 文件的md5值 */ public static String getFileMD5(String path){ StringBuilder sb = new StringBuilder(); try { FileInputStream fis = new FileInputStream(new File(path)); //获取MD5加密器 MessageDigest md = MessageDigest.getInstance("md5"); //类似读取文件 byte[] bytes = new byte[10240];//一次读取写入10k int len = 0; while((len = fis.read(bytes))!=-1){//从原目的地读取数据 //把数据写到md加密器,类比fos.write(bytes, 0, len); md.update(bytes, 0, len); } //读完整个文件数据,并写到md加密器中 byte[] digest = md.digest();//完成加密,得到md5值,但是是byte类型的。还要做最后的转换 for (byte b : digest) {//遍历字节,把每个字节拼接起来 //把每个字节转换成16进制数 int d = b & 0xff;//只保留后两位数 String herString = Integer.toHexString(d);//把int类型数据转为16进制字符串表示 //如果只有一位,则在前面补0.让其也是两位 if(herString.length()==1){//字节高4位为0 herString = "0"+herString;//拼接字符串,拼成两位表示 } sb.append(herString); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return sb.toString(); } /** * 对传递过来的字符串进行md5加密 * @param str * 待加密的字符串 * @return * 字符串Md5加密后的结果 */ public static String md5(String str){ StringBuilder sb = new StringBuilder();//字符串容器 try { //获取md5加密器.public static MessageDigest getInstance(String algorithm)返回实现指定摘要算法的 MessageDigest 对象。 MessageDigest md = MessageDigest.getInstance("MD5"); byte[] bytes = str.getBytes();//把要加密的字符串转换成字节数组 byte[] digest = md.digest(bytes);//使用指定的 【byte 数组】对摘要进行最后更新,然后完成摘要计算。即完成md5的加密 for (byte b : digest) { //把每个字节转换成16进制数 int d = b & 0xff;//只保留后两位数 String herString = Integer.toHexString(d);//把int类型数据转为16进制字符串表示 //如果只有一位,则在前面补0.让其也是两位 if(herString.length()==1){//字节高4位为0 herString = "0"+herString;//拼接字符串,拼成两位表示 } sb.append(herString); } } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); } return sb.toString(); } }
相关文章推荐
- Android初级教程:对文件和字符串进行MD5加密工具类
- Swift开发教程--如何对字符串进行md5加密
- android随笔16——对文件进行MD5加密…
- Android常用工具之对字符串String进行MD5加密
- [置顶] Android开发之将图片文件转化为字节数组字符串,并对其进行Base64编码处理
- 【Android数据加密与完整性校验之使用MessageDigest类进行MD5/SHA1】MessageDigest类对文件或字符串生成加密摘要进行完整性校验(一)
- MD5工具类,提供字符串MD5加密、文件MD5值获取(校验)功能
- [Android]对字符串进行MD5加密
- Android初级教程理论知识(第二章布局&读写文件)
- android 字符串工具类 格式化日期字符串 拼接数组 判断字符串是否为空 转换时间显示 转换文件大小 获取中英文字符个数
- Android初级教程理论知识(第二章布局&读写文件)
- Android (代码片段) 将网络或文件字节流转换为字符串(UT-8格式的)在进行网络交互时特别重要
- 我的Java开发学习之旅------>工具类:Java获取字符串和文件进行MD5值
- 对字符串进行MD5加密工具类
- Android (代码片段) 将网络或文件字节流转换为字符串(UT-8格式的)在进行网络交互时特别重要
- Python用户名密码登录系统(MD5加密并存入文件,三次输入错误将被锁定)及对字符串进行凯撒密码加解密操作
- MD5加密(字符串、文件)工具类,直接用!!!
- MD5工具类,提供字符串MD5加密(校验)、文件MD5值获取(校验)功能
- 【Android数据加密与完整性校验之使用MessageDigest类进行MD5/SHA1】MessageDigest类对文件或字符串生成加密摘要进行完整性校验(三)
- 对文件、字符串和byte数组进行MD5加密