欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java DES加密解密工具类,des加密解密工具类, import j

来源: javaer 分享于  点击 9111 次 点评:8

Java DES加密解密工具类,des加密解密工具类, import j


    import java.security.InvalidKeyException;      import java.security.Key;      import java.security.NoSuchAlgorithmException;      import javax.crypto.BadPaddingException;      import javax.crypto.Cipher;      import javax.crypto.IllegalBlockSizeException;      import javax.crypto.NoSuchPaddingException;      import javax.crypto.spec.SecretKeySpec;      import org.apache.commons.codec.binary.Base64;      public class DES {          public DES() {          }          public static DES getInstance(String key) throws NoSuchPaddingException,                  NoSuchAlgorithmException {              return getInstance(getKeyByStr(key));          }          public static DES getInstance(byte key[]) throws NoSuchPaddingException,                  NoSuchAlgorithmException {              DES des = new DES();              if (des.key == null) {                  SecretKeySpec spec = new SecretKeySpec(key, "DES");                  des.key = spec;              }              des.cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");              return des;          }          public byte[] encrypt(byte b[]) throws InvalidKeyException,                  BadPaddingException, IllegalBlockSizeException,                  IllegalStateException {              byte byteFina[] = null;              cipher.init(1, key);              byteFina = cipher.doFinal(b);              return byteFina;          }          public byte[] decrypt(byte b[]) throws InvalidKeyException,                  BadPaddingException, IllegalBlockSizeException,                  IllegalStateException {              byte byteFina[] = null;              cipher.init(2, key);              byteFina = cipher.doFinal(b);              return byteFina;          }          public static byte[] getKeyByStr(String str) {              byte bRet[] = new byte[str.length() / 2];              for (int i = 0; i < str.length() / 2; i++) {                  Integer itg = new Integer(16 * getChrInt(str.charAt(2 * i))                          + getChrInt(str.charAt(2 * i + 1)));                  bRet[i] = itg.byteValue();              }              return bRet;          }          private static int getChrInt(char chr) {              int iRet = 0;              if (chr == "0".charAt(0))                  iRet = 0;              if (chr == "1".charAt(0))                  iRet = 1;              if (chr == "2".charAt(0))                  iRet = 2;              if (chr == "3".charAt(0))                  iRet = 3;              if (chr == "4".charAt(0))                  iRet = 4;              if (chr == "5".charAt(0))                  iRet = 5;              if (chr == "6".charAt(0))                  iRet = 6;              if (chr == "7".charAt(0))                  iRet = 7;              if (chr == "8".charAt(0))                  iRet = 8;              if (chr == "9".charAt(0))                  iRet = 9;              if (chr == "A".charAt(0))                  iRet = 10;              if (chr == "B".charAt(0))                  iRet = 11;              if (chr == "C".charAt(0))                  iRet = 12;              if (chr == "D".charAt(0))                  iRet = 13;              if (chr == "E".charAt(0))                  iRet = 14;              if (chr == "F".charAt(0))                  iRet = 15;              return iRet;          }          private Key key;          private Cipher cipher;          /**          * @interpret 进行base64加密操作          * @param text          * @param keyString          * @return String          */          public String encrypt(String text, String keyString) {              String body = null;              try {                  DES des = DES.getInstance(keyString);                  byte[] b = des.encrypt(text.getBytes("UTF8"));                  body = new String(Base64.encodeBase64(b));              } catch (Exception ex) {              }              return body;          }          /**          * @interpret 进行base64进行解密          * @param text          * @param keyString          * @return String          */          public String decrypt(String text, String keyString) {              String body = null;              try {                  DES des = DES.getInstance(keyString);                  byte[] b = Base64.decodeBase64(text.getBytes());                  body = new String(des.decrypt(b), "UTF8");              } catch (Exception e) {                  e.printStackTrace();              }              return body;          }          public String authcode(String content, String operation, String key){              String encontent = null;              if (operation != null &amp;&amp; operation.equals("DECODE")) {                  encontent = encrypt(content,key);              } else if (operation != null &amp;&amp; operation.equals("ENCODE")) {                  encontent = decrypt(content,key);              }              return encontent;          }          public static void main(String[] args) {              DES des = new DES();              System.out.println(des.authcode("wewweewewew=","DECODE","0102030405060708"));//加密              System.out.println(des.authcode("d8fPhfd9JkW99p8aqhtVIA==","ENCODE","0102030405060708"));//解密          }      }  
相关栏目:

用户点评