posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          java MD5加密

          Posted on 2009-05-12 18:13 Gavin.lee 閱讀(317) 評(píng)論(0)  編輯  收藏 所屬分類: java SE & EE

          package com.Gavin.tools.util.jiami;

          import java.io.BufferedInputStream;
          import java.io.File;
          import java.io.FileInputStream;
          import java.io.InputStream;
          import java.security.MessageDigest;

          /**
           * MD5 data generate tool class
           * File / String 
           * @author Gavin.lee
           * @date 09-5-12 pm
           *
           */


          public class MD5Generator {
           
           private static InputStream createInputStream(File file) {
            InputStream is = null;
            try {
             is = new BufferedInputStream(new FileInputStream(file));
            } catch(Exception e) {
             e.printStackTrace();
            }
            return is;
           }
           
           private static String generateMD5ForFile(File file) {
            InputStream is = createInputStream(file);
            byte[] buf = new byte[4096];
            try {
             MessageDigest md = MessageDigest.getInstance("MD5");
             int count = 0;
             while((count = is.read(buf)) > 0) {
              md.update(buf, 0, count);
             }
             byte[] md5 = md.digest();
             is.close();
             buf = null;
             return md5HashToString(md5);
            } catch (Exception e) {
             e.printStackTrace();
            }
            
            return null;
           }
           
           private static String generateMD5(byte[] data, int offset, int len) {
            if(data.length == 0) {
             return "";
            }
            
            try {
             MessageDigest md = MessageDigest.getInstance("MD5");
             md.update(data, offset, len);
             byte[] md5 = md.digest();
             return md5HashToString(md5);
            } catch (Exception e) {
             e.printStackTrace();
            }
            
            return null;
           }
           
           private static String md5HashToString(byte[] input) {
            StringBuffer strBuf = new StringBuffer();
            int value;
            for(int i = 0; i < input.length; i++) {
             value = input[i];
             value = value > 0 ? value : value + 256;
             String str = Integer.toHexString(value);
             if(str.length() < 2)
              str = "0" + str;
             strBuf.append(str);
            }
            return strBuf.toString();
           }
           
           public static String getMD5Value(File file) {
            return generateMD5ForFile(file);
           }
           
           public static String getMD5Value(String src) {
            if(src == null) {
             return null;
            }
            if(src == "") {
             return "";
            }
             
            byte[] data = src.getBytes();
            return generateMD5(data, 0, data.length);
           }
           
           public static void main(String[] args) {
            //文件加密
            String file = "c:\\test.txt";
            long tmOrg = System.currentTimeMillis();
            String md5  = getMD5Value(new File(file));
            System.out.println("MD5: " + md5);
            long tmLast = System.currentTimeMillis() - tmOrg;
            System.out.println("Use time :" + tmLast + " ms");
            
            //串加密
            String str = "pass";
            System.out.println(getMD5Value(str));
            str = "password";
            System.out.println(getMD5Value(str));
            str = getMD5Value(str);
            System.out.println(str);
            
           }
          }

          主站蜘蛛池模板: 信丰县| 错那县| 义马市| 武宣县| 津市市| 德令哈市| 湄潭县| 望江县| 右玉县| 响水县| 随州市| 天全县| 澄迈县| 岗巴县| 平昌县| 商水县| 河南省| 红安县| 齐齐哈尔市| 宁明县| 汤原县| 监利县| 宝坻区| 东乡族自治县| 志丹县| 铜鼓县| 白河县| 抚松县| 海南省| 湾仔区| 普格县| 大厂| 池州市| 涟源市| 南投市| 余姚市| 光山县| 沈丘县| 柳江县| 东安县| 德阳市|