七郎's JavaBlog

          草木竹石皆可為劒。至人之用人若鏡,不將不迎,應而不藏,故能勝物而不傷。
          posts - 60, comments - 14, trackbacks - 0, articles - 0

          一個用java寫的加密解密程序

          Posted on 2007-04-16 15:34 七郎歸來 閱讀(1224) 評論(0)  編輯  收藏

          import javax.crypto.Cipher;
          import javax.crypto.SecretKey;
          import javax.crypto.SecretKeyFactory;
          import javax.crypto.spec.DESKeySpec;

          //import com.modernmedia.mw.tag.Messages;

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

          public class Crypt {
          // --------------------------------------------------------------------------------------------
          // 獲得密鑰
          public SecretKey getKey(String s) throws Exception {
          //s ="g8TlgLEc6oqZxdwGe6pDiKB8Y";
          System.out.println("s=="+s);
          char[] ss = s.toCharArray();
          String sss="";
              for(int i = 0;i<ss.length;i=i+2)
              {
              sss = sss + ss[i];
              }
          SecretKeyFactory kf = SecretKeyFactory.getInstance("DES");
          DESKeySpec ks = new DESKeySpec(sss.substring(0,8).getBytes());
          SecretKey kd = kf.generateSecret(ks);
          return kd;
          }

          // --------------------------------------------------------------------------------------------------
          // 返回加密后的字符串
          // key是用于生成密鑰的字符串,input是要加密的字符串
          public String getEncryptedString(String key, String input) {
          String base64 = "";
          try {
          Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
          cipher.init(Cipher.ENCRYPT_MODE, getKey(key));
          System.out.print("getKey(key)==="+getKey(key)+"key=="+key);
          byte[] inputBytes = input.getBytes("UTF8");
          byte[] outputBytes = cipher.doFinal(inputBytes);
          BASE64Encoder encoder = new BASE64Encoder();
          base64 = encoder.encode(outputBytes);
          } catch (Exception e) {
          base64 = e.getMessage();
          }
          return base64;
          }

          // --------------------------------------------------------------------------------------------------
          // 返回解密后的字符串
          // key是用于生成密鑰的字符串,input是要解密的字符串
          public String getDecryptedString(String key, String input) {
          String result = null;
          try {
          Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
          cipher.init(Cipher.DECRYPT_MODE, getKey(key));
          BASE64Decoder decoder = new BASE64Decoder();
          byte[] raw = decoder.decodeBuffer(input);
          byte[] stringBytes = cipher.doFinal(raw);
          result = new String(stringBytes, "UTF8");
          } catch (Exception e) {
          result = e.getMessage();
          }
          return result;
          }

          public static void main(String[] args){
          Crypt mycrypt = new Crypt();
          try {
          //SecretKey skey = mycrypt.getKey("g8TlgLEc6oqZxdwGe6pDiKB8Y");
          String ss = mycrypt.getEncryptedString("6678912345678906", "胖子");
          System.out.println("ss=="+ss);
          String ss2 = mycrypt.getDecryptedString("6678912345678906",ss);
          System.out.println("ss2=="+ss2);
          } catch (Exception e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          }

          //String ss = Messages.getString("SendToMemberTag.5");
          //System.out.print(ss);


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 逊克县| 原平市| 奉化市| 肃北| 宁南县| 浦城县| 双牌县| 怀来县| 上饶县| 宁乡县| 会同县| 三门峡市| 吴堡县| 鞍山市| 响水县| 兰考县| 永修县| 宜黄县| 吕梁市| 时尚| 琼海市| 阿坝县| 信丰县| 蛟河市| 嵩明县| 临沭县| 买车| 武平县| 泽库县| 弋阳县| 肥乡县| 章丘市| 灵台县| 泰顺县| 石城县| 汕尾市| 九龙坡区| 朝阳区| 高邑县| 交城县| 邢台县|