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

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

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

    posts - 14,  comments - 37,  trackbacks - 0
    在很多的時(shí)候,需要將重要信息加密,而以下類(lèi)就是在java中如何加密和解密經(jīng)常用到的代碼:
      1package cn.com.hkgt.apps.util; 
      2
      3
      4import java.security.*
      5import javax.crypto.Cipher; 
      6import javax.crypto.SecretKey; 
      7import javax.crypto.SecretKeyFactory; 
      8import javax.crypto.spec.DESKeySpec; 
      9
     10/** 
     11 * 字符串工具集合 
     12 */
     
     13public class StringUtils 
     14
     15    private static final String PASSWORD_CRYPT_KEY = "cindaportal"
     16private final static String DES = "DES"
     17
     18/** 
     19 * 加密 
     20 * @param src 數(shù)據(jù)源 
     21 * @param key 密鑰,長(zhǎng)度必須是8的倍數(shù) 
     22 * @return   返回加密后的數(shù)據(jù) 
     23 * @throws Exception 
     24 */
     
     25public static byte[] encrypt(byte[] src, byte[] key)throws Exception 
     26                //DES算法要求有一個(gè)可信任的隨機(jī)數(shù)源 
     27                SecureRandom sr = new SecureRandom(); 
     28                // 從原始密匙數(shù)據(jù)創(chuàng)建DESKeySpec對(duì)象 
     29                DESKeySpec dks = new DESKeySpec(key); 
     30                // 創(chuàng)建一個(gè)密匙工廠,然后用它把DESKeySpec轉(zhuǎn)換成 
     31                // 一個(gè)SecretKey對(duì)象 
     32                SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES); 
     33                SecretKey securekey = keyFactory.generateSecret(dks); 
     34                // Cipher對(duì)象實(shí)際完成加密操作 
     35                Cipher cipher = Cipher.getInstance(DES); 
     36                // 用密匙初始化Cipher對(duì)象 
     37                cipher.init(Cipher.ENCRYPT_MODE, securekey, sr); 
     38                // 現(xiàn)在,獲取數(shù)據(jù)并加密 
     39                // 正式執(zhí)行加密操作 
     40                return cipher.doFinal(src); 
     41         }
     
     42
     43         /** 
     44          * 解密 
     45          * @param src 數(shù)據(jù)源 
     46          * @param key 密鑰,長(zhǎng)度必須是8的倍數(shù) 
     47          * @return     返回解密后的原始數(shù)據(jù) 
     48          * @throws Exception 
     49          */
     
     50         public static byte[] decrypt(byte[] src, byte[] key)throws Exception 
     51                // DES算法要求有一個(gè)可信任的隨機(jī)數(shù)源 
     52                SecureRandom sr = new SecureRandom(); 
     53                // 從原始密匙數(shù)據(jù)創(chuàng)建一個(gè)DESKeySpec對(duì)象 
     54                DESKeySpec dks = new DESKeySpec(key); 
     55                // 創(chuàng)建一個(gè)密匙工廠,然后用它把DESKeySpec對(duì)象轉(zhuǎn)換成 
     56                // 一個(gè)SecretKey對(duì)象 
     57                SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES); 
     58                SecretKey securekey = keyFactory.generateSecret(dks); 
     59                // Cipher對(duì)象實(shí)際完成解密操作 
     60                Cipher cipher = Cipher.getInstance(DES); 
     61                // 用密匙初始化Cipher對(duì)象 
     62                cipher.init(Cipher.DECRYPT_MODE, securekey, sr); 
     63                // 現(xiàn)在,獲取數(shù)據(jù)并解密 
     64                // 正式執(zhí)行解密操作 
     65                return cipher.doFinal(src); 
     66         }
     
     67    /** 
     68     * 密碼解密 
     69     * @param data 
     70     * @return 
     71     * @throws Exception 
     72     */
     
     73    public final static String decrypt(String data)
     74         try 
     75            return new String(decrypt(hex2byte(data.getBytes()),PASSWORD_CRYPT_KEY.getBytes())); 
     76        }
    catch(Exception e) 
     77        }
     
     78        return null
     79    }
     
     80    /** 
     81     * 密碼加密 
     82     * @param password 
     83     * @return 
     84     * @throws Exception 
     85     */
     
     86    public final static String encrypt(String password)
     87        try 
     88            return byte2hex(encrypt(password.getBytes(),PASSWORD_CRYPT_KEY.getBytes())); 
     89        }
    catch(Exception e) 
     90        }
     
     91        return null
     92    }
     
     93/** 
     94 * 二行制轉(zhuǎn)字符串 
     95 * @param b 
     96 * @return 
     97 */
     
     98    public static String byte2hex(byte[] b) 
     99                String hs = ""
    100                String stmp = ""
    101                for (int n = 0; n < b.length; n++
    102                        stmp = (java.lang.Integer.toHexString(b[n] & 0XFF)); 
    103                        if (stmp.length() == 1
    104                                hs = hs + "0" + stmp; 
    105                        else 
    106                                hs = hs + stmp; 
    107                }
     
    108                return hs.toUpperCase(); 
    109     }
     
    110
    111    public static byte[] hex2byte(byte[] b) 
    112       if((b.length%2)!=0
    113              throw new IllegalArgumentException("長(zhǎng)度不是偶數(shù)"); 
    114                byte[] b2 = new byte[b.length/2]; 
    115                for (int n = 0; n < b.length; n+=2
    116                    String item = new String(b,n,2); 
    117                    b2[n/2= (byte)Integer.parseInt(item,16); 
    118                }
     
    119       return b2; 
    120    }
     
    121
    122    public static void main(String[] args) 
    123        String pwd = "測(cè)試dasdfaaaaaaa"
    124        System.out.println("測(cè)試數(shù)據(jù)="+pwd); 
    125        String data = encrypt(pwd); 
    126        System.out.println("加密后的數(shù)據(jù)data="+data); 
    127        pwd = decrypt(data); 
    128        System.out.println("解密后="+pwd); 
    129
    130    }
     
    131}
     
    132
    133
    134
    posted on 2007-06-26 14:33 冰封的愛(ài) 閱讀(2378) 評(píng)論(2)  編輯  收藏 所屬分類(lèi): 技術(shù)

    FeedBack:
    # re: JAVA加密解密工具類(lèi)
    2007-07-25 15:57 | 幾幾
    謝謝啊啊 我喜歡  回復(fù)  更多評(píng)論
      
    # re: JAVA加密解密工具類(lèi)
    2007-08-29 15:14 | No.4
    非常感謝!最近找的加密解密都同時(shí)加密解密兩個(gè)以上就不行行!哈哈,就你的可以成功!  回復(fù)  更多評(píng)論
      
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(3)

    隨筆檔案

    文章分類(lèi)

    文章檔案

    相冊(cè)

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 婷婷综合缴情亚洲狠狠尤物| 好大好深好猛好爽视频免费| 免费人成在线观看69式小视频| 免费中文熟妇在线影片| 国产一区二区三区在线免费观看| 亚洲综合另类小说色区色噜噜| 久久久国产精品亚洲一区| 亚洲区日韩精品中文字幕| 一本久久A久久免费精品不卡 | 亚洲日韩在线视频| 亚洲欧美日韩一区二区三区| 乱淫片免费影院观看| 91香焦国产线观看看免费| 午夜一级毛片免费视频| 亚洲真人无码永久在线| 亚洲人成人77777在线播放| 美女视频黄.免费网址| 全部免费毛片在线播放| 国产精品无码一二区免费| 亚洲国产成人高清在线观看| 最新亚洲卡一卡二卡三新区| 中文字幕在线视频免费观看| 国产成人免费网站| 亚洲日韩欧洲乱码AV夜夜摸 | 亚洲欧美日韩一区二区三区在线| 国产精品免费αv视频| **一级毛片免费完整视| 亚洲片国产一区一级在线观看| 亚洲国产精品日韩在线观看| 一区二区三区免费视频网站 | 我要看免费的毛片| 国产亚洲成av片在线观看| 亚洲大码熟女在线观看| 久久九九AV免费精品| 成人亚洲网站www在线观看| 97久久精品亚洲中文字幕无码 | 精品熟女少妇aⅴ免费久久 | 亚洲欧洲日产国码二区首页| 视频免费1区二区三区| 国产免费av片在线看| 亚洲Av永久无码精品三区在线 |