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

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

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

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學(xué);靜其心,可悟天下之理;恒其心,可成天下之業(yè)。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks
    **

    *加密解密類
    *
    *
    *
    */
    package com.abacus.common ;
    import java.security. *;
    import javax.crypto. *;
    /**
    *加密解密類

    */
    public class Eryptogram 
    {
        
    private static String Algorithm ="DES";
        
    //定義加密算法,可用DES,DESede,Blowfish
           static boolean debug =false ;
        
    /**
        *構(gòu)造子注解.
        
    */
        
    public Eryptogram ()
        {
        }
        
    /**
        *生成密鑰
        *@returnbyte[]返回生成的密鑰
        *@throwsexception扔出異常.
        
    */
        
    public static byte []getSecretKey ()throws Exception 
        {
            KeyGenerator keygen 
    =KeyGenerator.getInstance (Algorithm );
            SecretKey deskey 
    =keygen.generateKey ();
            
    if (debug )System.out.println ("生成密鑰:"+byte2hex (deskey.getEncoded ()));
            
    return deskey.getEncoded ();
        }
        
    /**
        *將指定的數(shù)據(jù)根據(jù)提供的密鑰進行加密
        *@paraminput需要加密的數(shù)據(jù)
        *@paramkey密鑰
        *@returnbyte[]加密后的數(shù)據(jù)
        *@throwsException
        
    */
        
    public static byte []encryptData (byte []input ,byte []key )throws Exception 
        {
            SecretKey deskey 
    =new javax.crypto.spec.SecretKeySpec (key ,Algorithm );
            
    if (debug )
            {
                System.out.println (
    "加密前的二進串:"+byte2hex (input ));
                System.out.println (
    "加密前的字符串:"+new String (input ));
            }
            Cipher c1 
    =Cipher.getInstance (Algorithm );
            c1.init (Cipher.ENCRYPT_MODE ,deskey );
            
    byte []cipherByte =c1.doFinal (input );
            
    if (debug )System.out.println ("加密后的二進串:"+byte2hex (cipherByte ));
            
    return cipherByte ;
        }
        
    /**
        *將給定的已加密的數(shù)據(jù)通過指定的密鑰進行解密
        *@paraminput待解密的數(shù)據(jù)
        *@paramkey密鑰
        *@returnbyte[]解密后的數(shù)據(jù)
        *@throwsException
        
    */
        
    public static byte []decryptData (byte []input ,byte []key )throws Exception 
        {
            SecretKey deskey 
    =new javax.crypto.spec.SecretKeySpec (key ,Algorithm );
            
    if (debug )System.out.println ("解密前的信息:"+byte2hex (input ));
            Cipher c1 
    =Cipher.getInstance (Algorithm );
            c1.init (Cipher.DECRYPT_MODE ,deskey );
            
    byte []clearByte =c1.doFinal (input );
            
    if (debug )
            {
                System.out.println (
    "解密后的二進串:"+byte2hex (clearByte ));
                System.out.println (
    "解密后的字符串:"+(new String (clearByte )));
            }
            
    return clearByte ;
        }
        
    /**
        *字節(jié)碼轉(zhuǎn)換成16進制字符串
        *@parambyte[]b輸入要轉(zhuǎn)換的字節(jié)碼
        *@returnString返回轉(zhuǎn)換后的16進制字符串
        
    */
        
    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 ;
                
    if (n <b.length -1 )hs =hs +":";
            }
            
    return hs.toUpperCase ();
        }
        
    public static void main (String []args )
        {
            
    try 
            {
                debug 
    =false ;
                Eryptogram etg 
    =new Eryptogram ();
                
    byte []key =etg.getSecretKey ();
                System.out.println (
    "key="+key );
                String aa 
    ="1234567";
                
    byte []data =aa.getBytes ();
                System.out.println (data );
                
    byte []en =etg.encryptData (data ,key );
                System.out.println (
    "encryptData="+new String (en ));
                
    byte []de =etg.decryptData (en ,key );
                System.out.println (
    "decryptData="+new String (de ));
            }
            
    catch (Exception e )
            {
                e.printStackTrace ();
            }
        }
    }
    posted on 2008-12-18 08:51 禮物 閱讀(5288) 評論(1)  編輯  收藏 所屬分類: java

    評論

    # re: url加密參數(shù) (java版) 2013-09-29 00:08 是電飯鍋
    asd飛  回復(fù)  更多評論
      

    主站蜘蛛池模板: 黄色视屏在线免费播放| 亚洲精品国产av成拍色拍| 亚洲婷婷综合色高清在线| 亚洲AV成人一区二区三区在线看| 亚洲日韩看片无码电影| 黄色免费网站在线看| 少妇性饥渴无码A区免费| 最近中文字幕免费2019| 大学生高清一级毛片免费| 亚洲黄片毛片在线观看| 亚洲va久久久噜噜噜久久男同 | 亚洲福利在线播放| 亚洲国产精品无码中文字| 亚洲精品456在线播放| 亚洲国产AV一区二区三区四区| 视频免费1区二区三区| 国产免费无码AV片在线观看不卡| 91麻豆最新在线人成免费观看| 国产高清免费在线| 国产亚洲精品观看91在线| 亚洲一级毛片视频| 黄页视频在线观看免费| 日韩成人免费视频| 四虎影视免费在线| 亚洲人成网7777777国产 | 久久精品国产亚洲AV麻豆不卡| 亚洲一级毛片视频| 香蕉视频在线免费看| 又粗又大又黑又长的免费视频| 亚洲国产日韩在线观频| 亚洲免费观看在线视频| 一级做α爱过程免费视频| 四虎精品视频在线永久免费观看| 波多野结衣视频在线免费观看| 亚洲伦另类中文字幕| 精品视频免费在线| 18成禁人视频免费网站| 亚洲精品成人久久久| 亚洲va乱码一区二区三区| 和老外3p爽粗大免费视频| 成人毛片18女人毛片免费|