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

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

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

    posts - 7,  comments - 6,  trackbacks - 0

    import java.security.Key;
    import java.security.SecureRandom;
    import javax.crypto.Cipher;
    import javax.crypto.KeyGenerator;
    import sun.misc.BASE64Decoder;
    import sun.misc.BASE64Encoder;

    /**
     *
     * 使用DES加密與解密,可對(duì)byte[],String類型進(jìn)行加密與解密
     * 密文可使用String,byte[]存儲(chǔ).
     *
     * 方法:
     * void getKey(String strKey)從strKey的字條生成一個(gè)Key
     *
     * String getEncString(String strMing)對(duì)strMing進(jìn)行加密,返回String密文
     * String getDesString(String strMi)對(duì)strMin進(jìn)行解密,返回String明文
     *
     *byte[] getEncCode(byte[] byteS)byte[]型的加密
     *byte[] getDesCode(byte[] byteD)byte[]型的解密
     */

    public class DesEncrypt {
      Key key;

      /**
       * 根據(jù)參數(shù)生成KEY
       * @param strKey
       */
       public void getKey(String strKey) {
        try {
          KeyGenerator _generator = KeyGenerator.getInstance("DES");
          _generator.init(new SecureRandom(strKey.getBytes()));
          this.key = _generator.generateKey();
          _generator = null;
        } catch (Exception e) {
          e.printStackTrace();
        }
      }

      /**
       * 加密String明文輸入,String密文輸出
       * @param strMing
       * @return
       */
      public String getEncString(String strMing) {
        byte[] byteMi = null;
        byte[] byteMing = null;
        String strMi = "";
        BASE64Encoder base64en = new BASE64Encoder();
        try {
          byteMing = strMing.getBytes("UTF8");
          byteMi = this.getEncCode(byteMing);
          strMi = base64en.encode(byteMi);
        } catch (Exception e) {
          e.printStackTrace();
        } finally {
          base64en = null;
          byteMing = null;
          byteMi = null;
        }
        return strMi;
      }

      /**
       * 解密 以String密文輸入,String明文輸出
       * @param strMi
       * @return
       */
      public String getDesString(String strMi) {
        BASE64Decoder base64De = new BASE64Decoder();
        byte[] byteMing = null;
        byte[] byteMi = null;
        String strMing = "";
        try {
          byteMi = base64De.decodeBuffer(strMi);
          byteMing = this.getDesCode(byteMi);
          strMing = new String(byteMing, "UTF8");
        } catch (Exception e) {
          e.printStackTrace();
        } finally {
          base64De = null;
          byteMing = null;
          byteMi = null;
        }
        return strMing;
      }

      /**
       * 加密以byte[]明文輸入,byte[]密文輸出
       * @param byteS
       * @return
       */
      private byte[] getEncCode(byte[] byteS) {
        byte[] byteFina = null;
        Cipher cipher;
        try {
          cipher = Cipher.getInstance("DES");
          cipher.init(Cipher.ENCRYPT_MODE, key);
          byteFina = cipher.doFinal(byteS);
        } catch (Exception e) {
          e.printStackTrace();
        } finally {
          cipher = null;
        }
        return byteFina;
      }

      /**
       * 解密以byte[]密文輸入,以byte[]明文輸出
       * @param byteD
       * @return
       */
      private byte[] getDesCode(byte[] byteD) {
        Cipher cipher;
        byte[] byteFina = null;
        try {
          cipher = Cipher.getInstance("DES");
          cipher.init(Cipher.DECRYPT_MODE, key);
          byteFina = cipher.doFinal(byteD);
        } catch (Exception e) {
          e.printStackTrace();
        } finally {
          cipher = null;
        }
        return byteFina;
      }

      public static void main(String args[]) {
        DesEncrypt des=new DesEncrypt();//實(shí)例化一個(gè)對(duì)像
        des.getKey("aadd");//生成密匙

        String strEnc = des.getEncString("明文");//加密字符串,返回String的密文
        System.out.println("加密文:"+strEnc);

        String strDes = des.getDesString(strEnc);//把String 類型的密文解密
        System.out.println("解密文:"+strDes);
      }
    }

    posted on 2005-11-28 15:08 清咖 閱讀(981) 評(píng)論(1)  編輯  收藏


    FeedBack:
    # re: java 的 Des加密和解密
    2006-01-05 16:53 | 車板
    怎么8個(gè)字節(jié)加密后得到24個(gè)字節(jié)?應(yīng)該是得到8個(gè)字節(jié)才對(duì)啊?  回復(fù)  更多評(píng)論
      

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    <2005年11月>
    303112345
    6789101112
    13141516171819
    20212223242526
    27282930123
    45678910

    常用鏈接

    留言簿(1)

    隨筆檔案

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲首页在线观看| 亚洲AV无码专区日韩| 国产亚洲一区二区手机在线观看| 日日狠狠久久偷偷色综合免费| 免费一级做a爰片久久毛片潮喷| 亚洲国产精品无码第一区二区三区 | 97人伦色伦成人免费视频| 亚洲av产在线精品亚洲第一站| 最近中文字幕电影大全免费版 | 国产亚洲精品免费视频播放| 久久久久亚洲av成人无码电影| 一级视频免费观看| 亚洲三区在线观看无套内射| 在线观看免费播放av片| 亚洲av无码国产精品色午夜字幕 | 亚洲六月丁香六月婷婷蜜芽| 67194成是人免费无码| 亚洲午夜福利在线视频| 日本v片免费一区二区三区| 欧洲亚洲国产精华液| 亚洲精品视频在线看| 三级黄色免费观看| 亚洲视频一区网站| 成人五级毛片免费播放| 特级毛片全部免费播放| 亚洲欧洲∨国产一区二区三区| 免费播放一区二区三区| 亚洲av片不卡无码久久| 免费jlzzjlzz在线播放视频| 3344在线看片免费| 亚洲在成人网在线看| 国产无遮挡吃胸膜奶免费看 | 亚洲av成人一区二区三区| 国产人妖ts在线观看免费视频| 久久最新免费视频| 亚洲熟妇av一区| 免费一级毛片在线播放不收费| 日本免费污片中国特一级| 国产精品亚洲综合五月天| 亚洲Av无码乱码在线观看性色 | 麻豆亚洲AV永久无码精品久久|