常用的字符串加密解密工具类

来源:互联网 发布:unity3d 四元数 编辑:程序博客网 时间:2024/06/05 16:58

         提前声明一下:此工具类忘记出处了,很抱歉,如果原创遇上了我立马上您的链接:

加密解密的工具类DataEncryptUtil:

     

package org.util;import java.security.MessageDigest;  import javax.crypto.KeyGenerator;  import javax.crypto.Mac;  import javax.crypto.SecretKey;  import javax.crypto.spec.SecretKeySpec;    import sun.misc.BASE64Decoder;  import sun.misc.BASE64Encoder;    /**  * data encrypt utls  *  * @author skyline  *  */  public class DataEncryptUtil {      public static final String KEY_SHA = "SHA";        public static final String KEY_MD5 = "MD5";        /**      * MAC算法可选以下多种算法      *      * <pre>      * HmacMD5      * HmacSHA1      * HmacSHA256      * HmacSHA384      * HmacSHA512      * </pre>      */      public static final String KEY_MAC = "HmacMD5";        /**      * BASE64解密      *      * @param key = 需要解密的密码字符串      * @return      * @throws Exception      */      public static byte[] decryptBASE64(String key) throws Exception {          return (new BASE64Decoder()).decodeBuffer(key);      }        /**      * BASE64加密      *      * @param key = 需要加密的字符数组      * @return      * @throws Exception      */      public static String encryptBASE64(byte[] key) throws Exception {          return (new BASE64Encoder()).encodeBuffer(key);      }            /**      * MD5加密      *      * @param data = 需要加密的字符数组      * @return      * @throws Exception      */      public static byte[] encryptMD5(byte[] data) throws Exception {            MessageDigest md5 = MessageDigest.getInstance(KEY_MD5);          md5.update(data);            return md5.digest();        }        /**      * SHA加密      *      * @param data = 需要加密的字符数组      * @return      * @throws Exception      */      public static byte[] encryptSHA(byte[] data) throws Exception {            MessageDigest sha = MessageDigest.getInstance(KEY_SHA);          sha.update(data);            return sha.digest();        }        /**      * 初始化HMAC密钥      *      * @return      * @throws Exception      */      public static String initMacKey() throws Exception {          KeyGenerator keyGenerator = KeyGenerator.getInstance(KEY_MAC);            SecretKey secretKey = keyGenerator.generateKey();          return encryptBASE64(secretKey.getEncoded());      }        /**      * HMAC加密      *      * @param data = 密匙加密过的字符数组      * @param key = 需要加密的字符串      * @return      * @throws Exception      */      public static byte[] encryptHMAC(byte[] data, String key) throws Exception {            SecretKey secretKey = new SecretKeySpec(decryptBASE64(key), KEY_MAC);          Mac mac = Mac.getInstance(secretKey.getAlgorithm());          mac.init(secretKey);            return mac.doFinal(data);        }    }  

    


0 0