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

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

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

    無線&移動互聯網技術研發

    換位思考·····
    posts - 19, comments - 53, trackbacks - 0, articles - 283
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    java BASE64加密(部分來自網絡)

    Posted on 2009-05-12 18:15 Gavin.lee 閱讀(1422) 評論(0)  編輯  收藏 所屬分類: java SE & EE

    “主要就是BASE64Encoder、BASE64Decoder兩個類,我們只需要知道使用對應的方法即可。另,BASE加密后產生的字節位數是8的倍數,如果不夠位數以=符號填充。”

    package com.Gavin.tools.util.jiami;

    import java.io.IOException;

    import sun.misc.BASE64Decoder;
    import sun.misc.BASE64Encoder;

    /**
     * @descripte 該類包含了簡單的BASE64加/解密方法;
     *      【約定密碼:當前時間的秒數:用戶名】的加/解密
     *      也對通信雙方串進行連接檢查
     * @author Gavin.lee
     * @date 09-5-12 pm
     *
     *
     */
    public class LinkEncrypt {
     /**
      * 雙方協定的連接密碼
      */
     private static final String SECRET = "yuedingPWD";

     /**
      * 將加密參數進行解密,并返回 
      * @param loginName   加密的參數
      *     
      */
     public String[] unPar(String loginName){
      if (loginName == null || loginName.trim().equals(""))
       return null;
      try {
       String str = unEncrypt(loginName);
       if (str == null || str.trim().equals("")) {
        return null;
       }    
       return str.split(":");
      } catch (Exception e) {
       System.out.println("LinkEncrypt unPar method IOExcepiton");
      }
      return null;
     }

     /**
      *
      * 生成加密后的傳遞參數字符串
      * @param secret
      *            雙方協定的連接密碼
      * @param userName
      *            用戶名
      * @return 返回 [雙方協定的連接密碼]+[:]+[系統時間]+[:]+[用戶名]
      */
     public String createPar(String secret, String userName){
      if (secret == null || secret.trim().equals(""))
       return "";
      if (userName == null || userName.trim().equals(""))
       return "";
      String time = String.valueOf(System.currentTimeMillis() / 1000);
      // time 是時間戳,就是自從 1970.1.1 00:00:00 到現在的秒數
      StringBuffer sb = new StringBuffer();
      sb.append(secret).append(":");
      sb.append(time).append(":");
      sb.append(userName);
      String loginName = encrypt(sb.toString());
      return loginName;
     }

     /**
      * 對字符串進行BASE64加密
      */
     private String encrypt(String str) {
      if (str == null || str.equals("")) {
       return "";
      }
      BASE64Encoder encoder = new BASE64Encoder();
      return encoder.encode(str.getBytes());
     }

     /**
      * 對BASE64加密后的字符串進行解密
      */
     private String unEncrypt(String str){
      if (str == null || str.equals("")) {
       return "";
      }
      BASE64Decoder decoder = new BASE64Decoder();
      try {
       byte[] b = decoder.decodeBuffer(str);
       return new String(b);
      } catch (IOException e) {
       e.printStackTrace();
      }
      return "";
      
     }
     
     public static void main(String[] args) {
      LinkEncrypt le = new LinkEncrypt();
      
      String str = "waitJIAMI";
      
      System.out.println(le.encrypt(str));  //簡單的串加密
      
      System.out.println(le.unEncrypt(le.encrypt(str))); //簡單的解密
      
      System.out.println(le.createPar(SECRET, "Gavin.lee"));  //連接檢查串加密
      
      System.out.println(le.unPar(le.createPar(SECRET, "Gavin.lee"))[0]);  //連接檢查串解密
     }
    }

    主站蜘蛛池模板: 一级特黄色毛片免费看| 国产偷国产偷亚洲高清人| 久久久免费的精品| 亚洲狠狠婷婷综合久久久久| 国产精品免费在线播放| 丁香五月亚洲综合深深爱| 中国一级全黄的免费观看| 亚洲av中文无码乱人伦在线咪咕| 久久久精品午夜免费不卡| 亚洲美女色在线欧洲美女| 一个人在线观看视频免费| 亚洲一区二区三区高清不卡| 免费无码黄网站在线观看| 国产精品亚洲专区在线播放| 久久久久亚洲精品中文字幕| 中文字幕永久免费| 亚洲国产日韩一区高清在线| 国产精品成人免费福利| 国产亚洲玖玖玖在线观看| 全亚洲最新黄色特级网站 | 成年女人免费视频播放体验区| 欧洲 亚洲 国产图片综合| 日韩激情淫片免费看| 产传媒61国产免费| 久久青草亚洲AV无码麻豆| 皇色在线视频免费网站| 黄页网站在线视频免费| 国产成A人亚洲精V品无码| 免费人成网站在线观看10分钟| 国产成人综合亚洲| 亚洲VA成无码人在线观看天堂 | 久久亚洲国产最新网站| 亚洲第一永久AV网站久久精品男人的天堂AV| 添bbb免费观看高清视频| 亚洲国产精品成人精品无码区 | 在线人成精品免费视频| 亚洲欧美aⅴ在线资源| 亚洲色无码专区在线观看| 亚洲人成免费电影| 免费一区二区无码视频在线播放| 久久亚洲精品成人777大小说|