博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java的md5加密算法代码
阅读量:4287 次
发布时间:2019-05-27

本文共 1332 字,大约阅读时间需要 4 分钟。

import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.nio.MappedByteBuffer;import java.nio.channels.FileChannel;import java.security.MessageDigest;public final class Md5Util {		private static final char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c',			'd', 'e', 'f'};		public static String encode(File file) {		FileInputStream in = null;		MessageDigest md5 = null;		try {			in = new FileInputStream(file);			FileChannel ch = in.getChannel();			MappedByteBuffer byteBuffer = ch.map(FileChannel.MapMode.READ_ONLY, 0, file.length());			md5 = MessageDigest.getInstance("MD5");			md5.update(byteBuffer);		} catch (Exception e) {			e.printStackTrace();		} finally {			try {				in.close();			} catch (IOException e) {				e.printStackTrace();			}		}		return toHex(md5.digest());	}	public static String encode(String arg) {		if (arg == null) {			arg = "";		}		MessageDigest md5 = null;		try {			md5 = MessageDigest.getInstance("MD5");			md5.update(arg.getBytes("UTF-8"));		} catch (Exception e) {			e.printStackTrace();		}		return toHex(md5.digest());	}	private static String toHex(byte[] bytes) {		StringBuffer str = new StringBuffer(32);		for (byte b : bytes) {			str.append(hexDigits[(b & 0xf0) >> 4]);			str.append(hexDigits[(b & 0x0f)]);		}		return str.toString();	}}

转载地址:http://ymtgi.baihongyu.com/

你可能感兴趣的文章
java基础(七)/面向对像
查看>>
java基础(八)Math/代码块/继承成员方法指南的关系/继承中成员变量之间的关系/方法的重写/继承中构造方法之间的关系/this和super的区别
查看>>
iOS之AFNetWorking基本用法(一)上传、下载
查看>>
java基础(九)关键字final/多态/抽象类/关键字abstract/接口
查看>>
java中的错误集合
查看>>
java基础(十)形式参数和返回值/链式编程/包/权限修饰符/内部类
查看>>
C语言char *p 和 cha'r p[10]的区别/sizeof和strlen的区别
查看>>
PHP配置和基础知识
查看>>
PHP 基础一
查看>>
iOS 输出指定位数
查看>>
iOS 中的传值的方法
查看>>
PHP 基础二
查看>>
iOS IPV6域名转IP
查看>>
iOS 解决苹果手机锁屏后APP退出的问题及app状态
查看>>
PHP基础三
查看>>
iOS7以后解决view上移的问题
查看>>
iOS后台运行延长时间
查看>>
PHP基础 四
查看>>
javascript(一)
查看>>
javascript(二)之HTMLDOM
查看>>