| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
ed6y
10年前发布

Java DES加密解密工具类

    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 && operation.equals("DECODE")) {                    encontent = encrypt(content,key);                } else if (operation != null && 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"));//解密            }        }