<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]);  //連接檢查串解密
     }
    }

    主站蜘蛛池模板: 亚洲视频免费在线看| 免费在线观看a级毛片| 亚洲一区二区三区自拍公司| 亚洲AV综合色区无码二区偷拍 | 国产男女猛烈无遮挡免费网站| 亚洲第一精品福利| 特级毛片爽www免费版| 女人18毛片a级毛片免费 | 亚洲国产韩国一区二区| 两个人看的www视频免费完整版| 精品久久洲久久久久护士免费| 亚洲欧洲国产成人精品| 国产成人免费ā片在线观看老同学| 亚洲AⅤ永久无码精品AA| 亚洲一区二区三区高清不卡 | 亚洲不卡AV影片在线播放| 亚洲天堂免费在线| 国产成人亚洲综合一区| 免费无遮挡无码永久视频| 在线A亚洲老鸭窝天堂| 免费一级做a爰片久久毛片潮| 最新69国产成人精品免费视频动漫| 亚洲日本在线观看网址| 国产精品免费大片| 亚洲熟妇av一区二区三区| 欧洲精品码一区二区三区免费看 | 国产免费怕怕免费视频观看| 亚洲一区免费视频| 亚洲免费中文字幕| 亚洲天堂男人天堂| 无码一区二区三区免费| 亚洲av综合av一区| 全黄大全大色全免费大片| 国产成人精品曰本亚洲79ren| 成人嫩草影院免费观看| 免费观看国产精品| 国产一区二区三区亚洲综合| 麻豆国产人免费人成免费视频 | 亚洲AV色欲色欲WWW| 成人au免费视频影院| 亚洲av片不卡无码久久|