zoukankan      html  css  js  c++  java
  • Base64 工具类

    import org.apache.commons.codec.binary.Base64;
    import org.apache.commons.lang3.StringUtils;
    
    import javax.crypto.Cipher;
    import javax.crypto.spec.SecretKeySpec;
    
    public class Base64Util {
        /**
         * 密钥
         */
        private static final String KEY = "abcdefgabcdefg12";
    
        /**
         * 算法
         */
        private static final String ALGORITHMSTR = "AES/ECB/PKCS5Padding";
    
    
        public static void main(String[] args) throws Exception {
            String content = "我爱你";
            System.out.println("加密前:" + content);
    
            System.out.println("加密密钥和解密密钥:" + KEY);
    
            String encrypt = aesEncrypt(content, KEY);
            System.out.println("加密后:" + encrypt);
    
            String decrypt = aesDecrypt("zNeujvgAjFHfNZWk3cYoMw==", KEY);
            System.out.println("解密后:" + decrypt);
        }
    
    
        /**
         * base 64 encode
         * @param bytes 待编码的byte[]
         * @return 编码后的base 64 code
         */
        public static String base64Encode(byte[] bytes){
            return Base64.encodeBase64String(bytes);
        }
    
        /**
         * base 64 decode
         * @param base64Code 待解码的base 64 code
         * @return 解码后的byte[]   new BASE64Decoder().decodeBuffer(base64Code)
         * @throws Exception
         */
        public static byte[] base64Decode(String base64Code) throws Exception{
            return StringUtils.isEmpty(base64Code) ? null :Base64.decodeBase64(base64Code);
        }
    
    
        /**
         * AES加密
         * @param content 待加密的内容
         * @param encryptKey 加密密钥
         * @return 加密后的byte[]
         * @throws Exception
         */
        public static byte[] aesEncryptToBytes(String content, String encryptKey) throws Exception {
            Cipher cipher = Cipher.getInstance(ALGORITHMSTR);
            cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(encryptKey.getBytes(), "AES"));
            return cipher.doFinal(content.getBytes("utf-8"));
        }
    
    
        /**
         * AES加密为base 64 code
         * @param content 待加密的内容
         * @param encryptKey 加密密钥
         * @return 加密后的base 64 code
         * @throws Exception
         */
        public static String aesEncrypt(String content, String encryptKey) throws Exception {
            // aesEncryptToBytes(content, encryptKey)  这个方法相当于对内容使用指定的密钥进行了一次hash内容返回
            // base64Encode  -》  Base64.encodeBase64String(bytes);  使用hash后的内容使用 base64进行加密
            return base64Encode(aesEncryptToBytes(content, encryptKey));
        }
    
        /**
         * AES解密
         * @param encryptBytes 待解密的byte[]
         * @param decryptKey 解密密钥
         * @return 解密后的String
         * @throws Exception
         */
        public static String aesDecryptByBytes(byte[] encryptBytes, String decryptKey) throws Exception {
            Cipher cipher = Cipher.getInstance(ALGORITHMSTR);
            cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(decryptKey.getBytes(), "AES"));
            byte[] decryptBytes = cipher.doFinal(encryptBytes);
            return new String(decryptBytes);
        }
    
    
        /**
         * 将base 64 code AES解密
         * @param encryptStr 待解密的base 64 code
         * @param decryptKey 解密密钥
         * @return 解密后的string
         * @throws Exception
         */
        public static String aesDecrypt(String encryptStr, String decryptKey) throws Exception {
            // base64Decode(encryptStr) base64加密
            // aesDecryptByBytes  aes解密
            return StringUtils.isEmpty(encryptStr) ? null : aesDecryptByBytes(base64Decode(encryptStr), decryptKey);
        }
    
    }

    mikuriya,偶遇良缘。

  • 相关阅读:
    【Mobius绮丽的辗转】莫比乌斯反演
    【BZOJ2301】【HAOI2011】Problem b 莫比乌斯反演
    【JZOJ3636】【BOI2012】Mobile(mobile)
    【JZOJ3640】【COCI2014】utrka
    VMware虚拟机无法上网 无法启动VMnet0等问题【转载】
    java map 遍历
    java List<String> 转换成带逗号的字符串
    javascript 请求action传递中文参数乱码问题
    jQuery ajax 传递JSON数组到Spring Controller
    Eclipse 在线安装properties编辑插件
  • 原文地址:https://www.cnblogs.com/mikuriya/p/14447743.html
Copyright © 2011-2022 走看看