使用Java MD5 为文件和字符串加密_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 使用Java MD5 为文件和字符串加密

使用Java MD5 为文件和字符串加密

 2017/6/20 5:44:58  l4432848  程序员俱乐部  我要评论(0)
  • 摘要:加密工具类packagecom.kaige123.util;importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importjava.nio.MappedByteBuffer;importjava.nio.channels.FileChannel;importjava.security.MessageDigest;/***MD5文字和文件加密<br>*http://www
  • 标签:使用 文件 Java 字符串 字符串加密

加密工具类

?

class="java">package com.kaige123.util;
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; 
/**
 * MD5文字和文件加密<br>
 * http://www.kaige123.com
 * @author 凯哥 
 */
public class MD5Util {
	//16进制
	protected static char hex[] = {
			'0', '1', '2', '3', '4', '5', '6','7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
	protected static MessageDigest messagedigest = null; 
	static {
		try {
			//得到MD5实例
			messagedigest = MessageDigest.getInstance("MD5");
		} catch (Exception e) {
		}
	} 
	//得到文件MD5钥匙
	public static String getFileMD5String(File file) throws IOException {
		FileInputStream in = new FileInputStream(file);
		FileChannel ch = in.getChannel();
		MappedByteBuffer byteBuffer =
				ch.map(FileChannel.MapMode.READ_ONLY, 0,
				file.length());
		messagedigest.update(byteBuffer);
		return bufferToHex(messagedigest.digest());
	} 
	//得到MD5字符串钥匙
	public static String getMD5String(String s) {
		return getMD5String(s.getBytes());
	}
	public static String getMD5String(byte[] bytes) {
		messagedigest.update(bytes);
		return bufferToHex(messagedigest.digest());
	}
	private static String bufferToHex(byte bytes[]) {
		return bufferToHex(bytes, 0, bytes.length);
	}
	private static String bufferToHex(byte bytes[], int m, int n) {
		StringBuffer stringbuffer = new StringBuffer(2 * n);
		int k = m + n;
		for (int l = m; l < k; l++) {
			appendHexPair(bytes[l], stringbuffer);
		}
		return stringbuffer.toString();
	}
	private static void appendHexPair(byte bt, StringBuffer stringbuffer) {
		char c0 = hex[(bt & 0xf0) >> 4];
		char c1 = hex[bt & 0xf];
		stringbuffer.append(c0);
		stringbuffer.append(c1);
	}
}

?测试类

package com.kaige123.util;
import java.io.File;
import java.io.IOException;
/**
 * 测试类
 * @author 凯哥
 */
public class Test {
	public static void main(String[] args) throws IOException {
		//得到字符串MD5
		String md5str=MD5Util.getMD5String("凯哥是个胖子");
		System.out.println(md5str);
	
		//得到文件的MD5
		String filemd5str=MD5Util.getFileMD5String(new File("c:/kaige/a.txt"));
		System.out.println(filemd5str);
	}
}

?

发表评论
用户名: 匿名