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

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

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

    備忘——DES加密解密類

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

    }

    posted on 2008-01-08 17:25 靈! 閱讀(362) 評論(0)  編輯  收藏 所屬分類: Java專題-加密解密


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2008年1月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    統計

    隨筆分類

    隨筆檔案

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产无遮挡裸体免费视频在线观看| 四虎永久精品免费观看| 一区二区视频免费观看| 亚洲av无码电影网| 亚洲成人精品久久| 久久乐国产精品亚洲综合| 日韩在线看片免费人成视频播放| 久章草在线精品视频免费观看| 成人免费网站久久久| 亚洲AV综合色区无码一二三区| 亚洲精品白色在线发布| 亚洲爆乳精品无码一区二区三区| 亚洲精品和日本精品| 免费永久在线观看黄网站| 成年性午夜免费视频网站不卡| 2020因为爱你带字幕免费观看全集| 成人A片产无码免费视频在线观看| jizz18免费视频| 三级片免费观看久久| 国产精品亚洲精品日韩动图| 亚洲欧美国产欧美色欲| 亚洲日韩精品A∨片无码加勒比 | 一级做受视频免费是看美女 | 免费AA片少妇人AA片直播| 青青青国产手机频在线免费观看| 九九九精品视频免费| 免费无码又爽又黄又刺激网站| 含羞草国产亚洲精品岁国产精品 | 免费精品国偷自产在线在线| 91人人区免费区人人| 久久精品无码精品免费专区| 精品国产一区二区三区免费| 国产免费一区二区三区不卡| 13小箩利洗澡无码视频网站免费 | 亚洲视频在线一区二区| 国产成人亚洲综合无码| 中文字幕精品无码亚洲字| 中文字幕亚洲综合久久菠萝蜜| 亚洲愉拍99热成人精品热久久| 国产精品亚洲w码日韩中文| 亚洲综合图色40p|