<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 297,  comments - 1618,  trackbacks - 0
            做項(xiàng)目時(shí)用到的DES加密解密類,代碼如下:

    import java.security.*;
    import javax.crypto.Cipher;
    import javax.crypto.SecretKey;
    import javax.crypto.SecretKeyFactory;
    import javax.crypto.spec.DESKeySpec;

    /**
     * Copyright 2007 GuangZhou Cotel Co. Ltd.
     * All right reserved.    
     * DES加密解密類.     
     * 
    @author <a href="mailto:xiexingxing1121@126.com">AmigoXie</a>
     * 
    @version 1.0 
     * Creation date: 2007-7-31 - 上午11:59:28
     
    */

    public class Des {
        
    /** 加密、解密key. */
        
    private static final String PASSWORD_CRYPT_KEY = "kEHrDooxWHCWtfeSxvDvgqZq";

        
    /** 加密算法,可用 DES,DESede,Blowfish. */
        
    private final static String ALGORITHM = "DES";

        
    public static void main(String[] args) throws Exception {
            String md5Password 
    = "202cb962ac59075b964b07152d234b70";
            String str 
    = Des.encrypt(md5Password);
            System.out.println(
    "str: " + str);
            str 
    = Des.decrypt(str);
            System.out.println(
    "str: " + str);
        }

        
        
    /**
         * 對(duì)數(shù)據(jù)進(jìn)行DES加密.
         * 
    @param data 待進(jìn)行DES加密的數(shù)據(jù)
         * 
    @return 返回經(jīng)過DES加密后的數(shù)據(jù)
         * 
    @throws Exception
         * 
    @author <a href="mailto:xiexingxing1121@126.com">AmigoXie</a>
         * Creation date: 2007-7-31 - 下午12:06:24
         
    */

        
    public final static String decrypt(String data) throws Exception {
            
    return new String(decrypt(hex2byte(data.getBytes()),
                    PASSWORD_CRYPT_KEY.getBytes()));
        }


        
    /**
         * 對(duì)用DES加密過的數(shù)據(jù)進(jìn)行解密.
         * 
    @param data DES加密數(shù)據(jù)
         * 
    @return 返回解密后的數(shù)據(jù)
         * 
    @throws Exception
         * 
    @author <a href="mailto:xiexingxing1121@126.com">AmigoXie</a>
         * Creation date: 2007-7-31 - 下午12:07:54
         
    */

        
    public final static String encrypt(String data) throws Exception  {
            
    return byte2hex(encrypt(data.getBytes(), PASSWORD_CRYPT_KEY
                    .getBytes()));
        }

        
        
    /**
         * 用指定的key對(duì)數(shù)據(jù)進(jìn)行DES加密.
         * 
    @param data 待加密的數(shù)據(jù)
         * 
    @param key DES加密的key
         * 
    @return 返回DES加密后的數(shù)據(jù)
         * 
    @throws Exception
         * 
    @author <a href="mailto:xiexingxing1121@126.com">AmigoXie</a>
         * Creation date: 2007-7-31 - 下午12:09:03
         
    */

        
    private static byte[] encrypt(byte[] data, byte[] key) throws Exception {
            
    // DES算法要求有一個(gè)可信任的隨機(jī)數(shù)源
            SecureRandom sr = new SecureRandom();
            
    // 從原始密匙數(shù)據(jù)創(chuàng)建DESKeySpec對(duì)象
            DESKeySpec dks = new DESKeySpec(key);
            
    // 創(chuàng)建一個(gè)密匙工廠,然后用它把DESKeySpec轉(zhuǎn)換成
            
    // 一個(gè)SecretKey對(duì)象
            SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM);
            SecretKey securekey 
    = keyFactory.generateSecret(dks);
            
    // Cipher對(duì)象實(shí)際完成加密操作
            Cipher cipher = Cipher.getInstance(ALGORITHM);
            
    // 用密匙初始化Cipher對(duì)象
            cipher.init(Cipher.ENCRYPT_MODE, securekey, sr);
            
    // 現(xiàn)在,獲取數(shù)據(jù)并加密
            
    // 正式執(zhí)行加密操作
            return cipher.doFinal(data);
        }


        
    /**
         * 用指定的key對(duì)數(shù)據(jù)進(jìn)行DES解密.
         * 
    @param data 待解密的數(shù)據(jù)
         * 
    @param key DES解密的key
         * 
    @return 返回DES解密后的數(shù)據(jù)
         * 
    @throws Exception
         * 
    @author <a href="mailto:xiexingxing1121@126.com">AmigoXie</a>
         * Creation date: 2007-7-31 - 下午12:10:34
         
    */

        
    private static byte[] decrypt(byte[] data, byte[] key) throws Exception {
            
    // DES算法要求有一個(gè)可信任的隨機(jī)數(shù)源
            SecureRandom sr = new SecureRandom();
            
    // 從原始密匙數(shù)據(jù)創(chuàng)建一個(gè)DESKeySpec對(duì)象
            DESKeySpec dks = new DESKeySpec(key);
            
    // 創(chuàng)建一個(gè)密匙工廠,然后用它把DESKeySpec對(duì)象轉(zhuǎn)換成
            
    // 一個(gè)SecretKey對(duì)象
            SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM);
            SecretKey securekey 
    = keyFactory.generateSecret(dks);
            
    // Cipher對(duì)象實(shí)際完成解密操作
            Cipher cipher = Cipher.getInstance(ALGORITHM);
            
    // 用密匙初始化Cipher對(duì)象
            cipher.init(Cipher.DECRYPT_MODE, securekey, sr);
            
    // 現(xiàn)在,獲取數(shù)據(jù)并解密
            
    // 正式執(zhí)行解密操作
            return cipher.doFinal(data);
        }


        
    public static byte[] hex2byte(byte[] b) {
            
    if ((b.length % 2!= 0)
                
    throw new IllegalArgumentException("長度不是偶數(shù)");
            
    byte[] b2 = new byte[b.length / 2];
            
    for (int n = 0; n < b.length; n += 2{
                String item 
    = new String(b, n, 2);
                b2[n 
    / 2= (byte) Integer.parseInt(item, 16);
            }

            
    return b2;
        }


        
    public static String byte2hex(byte[] b) {
            String hs 
    = "";
            String stmp 
    = "";

            
    for (int n = 0; n < b.length; n++{
                stmp 
    = (java.lang.Integer.toHexString(b[n] & 0XFF));
                
    if (stmp.length() == 1)
                    hs 
    = hs + "0" + stmp;
                
    else
                    hs 
    = hs + stmp;
            }

            
    return hs.toUpperCase();
        }

    }
      
           參考文章:http://zhidao.baidu.com/question/21703942.html
    posted on 2007-07-31 12:18 阿蜜果 閱讀(2925) 評(píng)論(1)  編輯  收藏 所屬分類: Java


    FeedBack:
    # re: 備忘——DES加密解密類
    2007-09-28 21:18 | 易初風(fēng)云
        支持大文件加密---解密操作嗎?   回復(fù)  更多評(píng)論
      
    <2007年7月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

          生活將我們磨圓,是為了讓我們滾得更遠(yuǎn)——“圓”來如此。
          我的作品:
          玩轉(zhuǎn)Axure RP  (2015年12月出版)
          

          Power Designer系統(tǒng)分析與建模實(shí)戰(zhàn)  (2015年7月出版)
          
         Struts2+Hibernate3+Spring2   (2010年5月出版)
         

    留言簿(263)

    隨筆分類

    隨筆檔案

    文章分類

    相冊

    關(guān)注blog

    積分與排名

    • 積分 - 2294512
    • 排名 - 3

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 成全视频免费高清| 国产久爱免费精品视频| 亚洲国产中文在线视频| 久久亚洲精品中文字幕| 久久丫精品国产亚洲av不卡| 亚洲av一综合av一区| 久久亚洲国产精品| 亚洲AV无码精品色午夜在线观看| 欧洲亚洲国产清在高| 久久精品国产亚洲一区二区| 国产成A人亚洲精V品无码性色| 亚洲国产国产综合一区首页| 亚洲电影一区二区| 亚洲mv国产精品mv日本mv| 亚洲综合色一区二区三区| 亚洲风情亚Aⅴ在线发布| 美女被免费网站在线视频免费| 日韩精品视频在线观看免费| 久久久精品视频免费观看| 成全视频高清免费观看电视剧| 中文字幕成人免费视频| 很黄很黄的网站免费的| 拨牐拨牐x8免费| 免费在线精品视频| 日韩亚洲人成在线综合日本| 亚洲成人免费电影| 亚洲国产aⅴ成人精品无吗| 日韩在线视频免费| 国产精品免费观看调教网| 亚洲人成免费电影| 手机看片久久国产免费| 国产亚洲大尺度无码无码专线 | 日韩精品无码免费专区午夜不卡| 久久精品成人免费看| 精品福利一区二区三区免费视频| 成人免费无码大片a毛片软件| 亚洲AV之男人的天堂| 亚洲国产精品久久| 亚洲人av高清无码| 久久av免费天堂小草播放| 久久精品国产免费观看|