<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
            做項目時用到的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);
        }

        
        
    /**
         * 對數據進行DES加密.
         * 
    @param data 待進行DES加密的數據
         * 
    @return 返回經過DES加密后的數據
         * 
    @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()));
        }


        
    /**
         * 對用DES加密過的數據進行解密.
         * 
    @param data DES加密數據
         * 
    @return 返回解密后的數據
         * 
    @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對數據進行DES加密.
         * 
    @param data 待加密的數據
         * 
    @param key DES加密的key
         * 
    @return 返回DES加密后的數據
         * 
    @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算法要求有一個可信任的隨機數源
            SecureRandom sr = new SecureRandom();
            
    // 從原始密匙數據創建DESKeySpec對象
            DESKeySpec dks = new DESKeySpec(key);
            
    // 創建一個密匙工廠,然后用它把DESKeySpec轉換成
            
    // 一個SecretKey對象
            SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM);
            SecretKey securekey 
    = keyFactory.generateSecret(dks);
            
    // Cipher對象實際完成加密操作
            Cipher cipher = Cipher.getInstance(ALGORITHM);
            
    // 用密匙初始化Cipher對象
            cipher.init(Cipher.ENCRYPT_MODE, securekey, sr);
            
    // 現在,獲取數據并加密
            
    // 正式執行加密操作
            return cipher.doFinal(data);
        }


        
    /**
         * 用指定的key對數據進行DES解密.
         * 
    @param data 待解密的數據
         * 
    @param key DES解密的key
         * 
    @return 返回DES解密后的數據
         * 
    @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算法要求有一個可信任的隨機數源
            SecureRandom sr = new SecureRandom();
            
    // 從原始密匙數據創建一個DESKeySpec對象
            DESKeySpec dks = new DESKeySpec(key);
            
    // 創建一個密匙工廠,然后用它把DESKeySpec對象轉換成
            
    // 一個SecretKey對象
            SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM);
            SecretKey securekey 
    = keyFactory.generateSecret(dks);
            
    // Cipher對象實際完成解密操作
            Cipher cipher = Cipher.getInstance(ALGORITHM);
            
    // 用密匙初始化Cipher對象
            cipher.init(Cipher.DECRYPT_MODE, securekey, sr);
            
    // 現在,獲取數據并解密
            
    // 正式執行解密操作
            return cipher.doFinal(data);
        }


        
    public static byte[] hex2byte(byte[] b) {
            
    if ((b.length % 2!= 0)
                
    throw new IllegalArgumentException("長度不是偶數");
            
    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) 評論(1)  編輯  收藏 所屬分類: Java


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

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

          Power Designer系統分析與建模實戰  (2015年7月出版)
          
         Struts2+Hibernate3+Spring2   (2010年5月出版)
         

    留言簿(263)

    隨筆分類

    隨筆檔案

    文章分類

    相冊

    關注blog

    積分與排名

    • 積分 - 2294492
    • 排名 - 3

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 成年女人看片免费视频播放器| 亚洲人成网站色在线入口| 亚洲乱码中文字幕在线| 亚洲成A人片在线观看无码3D| 97在线免费观看视频| 亚洲激情黄色小说| 一区二区三区亚洲视频| 色欲国产麻豆一精品一AV一免费| 亚洲一欧洲中文字幕在线| 免费人成在线观看视频播放| 全部免费毛片在线播放| 亚洲精华液一二三产区| 亚洲伊人久久精品影院| 国产一卡2卡3卡4卡无卡免费视频 国产一卡二卡3卡四卡免费 | 日本一区二区在线免费观看 | 亚洲国产精品成人久久| 男人的好免费观看在线视频| 无码 免费 国产在线观看91| 亚洲精品成人网站在线播放| 亚洲人成影院在线无码观看| 日韩中文字幕精品免费一区| a毛片免费播放全部完整| 亚洲中文字幕一区精品自拍| 亚洲一区爱区精品无码| 性感美女视频在线观看免费精品 | 国产午夜亚洲精品不卡| 亚洲视频一区在线观看| 久久久久亚洲爆乳少妇无| 成人毛片免费观看| 99久热只有精品视频免费观看17| 日韩一区二区三区免费播放| 亚洲一区二区三区播放在线| 亚洲欧洲∨国产一区二区三区| 国产美女无遮挡免费视频网站| 久久久久国产亚洲AV麻豆| 日本免费人成在线网站| 国内精品免费久久影院| 男男gay做爽爽免费视频| 亚洲a级成人片在线观看| 亚洲国产精品久久久久婷婷软件| 亚洲成a人片在线观看国产|