使用Java MD5 为文件和字符串加密
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Java MD5 为文件和字符串加密相关的知识,希望对你有一定的参考价值。
加密工具类
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进制 protectedstatic char hex[] = { ‘0‘,‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘,‘7‘, ‘8‘, ‘9‘, ‘A‘, ‘B‘, ‘C‘, ‘D‘, ‘E‘, ‘F‘}; protectedstatic MessageDigest messagedigest = null; static{ try{ //得到MD5实例 messagedigest= MessageDigest.getInstance("MD5"); }catch (Exception e) { } } //得到文件MD5钥匙 publicstatic String getFileMD5String(File file) throws IOException { FileInputStreamin = new FileInputStream(file); FileChannelch = in.getChannel(); MappedByteBufferbyteBuffer = ch.map(FileChannel.MapMode.READ_ONLY,0, file.length()); messagedigest.update(byteBuffer); returnbufferToHex(messagedigest.digest()); } //得到MD5字符串钥匙 publicstatic String getMD5String(String s) { returngetMD5String(s.getBytes()); } publicstatic String getMD5String(byte[] bytes) { messagedigest.update(bytes); returnbufferToHex(messagedigest.digest()); } privatestatic String bufferToHex(byte bytes[]) { returnbufferToHex(bytes, 0, bytes.length); } privatestatic String bufferToHex(byte bytes[], int m, int n) { StringBufferstringbuffer = new StringBuffer(2 * n); intk = m + n; for(int l = m; l < k; l++) { appendHexPair(bytes[l],stringbuffer); } returnstringbuffer.toString(); } privatestatic void appendHexPair(byte bt, StringBuffer stringbuffer) { charc0 = hex[(bt & 0xf0) >> 4]; charc1 = 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 { publicstatic void main(String[] args) throws IOException { //得到字符串MD5 Stringmd5str=MD5Util.getMD5String("凯哥是个胖子"); System.out.println(md5str); //得到文件的MD5 Stringfilemd5str=MD5Util.getFileMD5String(new File("c:/kaige/a.txt")); System.out.println(filemd5str); } }
以上是关于使用Java MD5 为文件和字符串加密的主要内容,如果未能解决你的问题,请参考以下文章