123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- package cn.efunbox.base.util;
- import org.apache.commons.codec.binary.Base64;
- import org.apache.commons.lang3.StringUtils;
- import sun.misc.BASE64Decoder;
- import javax.crypto.Cipher;
- import javax.crypto.KeyGenerator;
- import javax.crypto.spec.SecretKeySpec;
- /**
- * EncryptUtils
- * Created by wangys on
- */
- public class EncryptUtils {
- /**
- * 密钥
- */
- private static final String KEY = "GfqqwfctR8gdNGUS";// AES加密要求key必须要128个比特位(这里需要长度为16,否则会报错)
- /**
- * 算法
- */
- private static final String ALGORITHMSTR = "AES/ECB/PKCS5Padding";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050001/00103050001.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050002/00103050002.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050003/00103050003.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050004/00103050004.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050005/00103050005.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050011/00103050011.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050012/00103050012.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050013/00103050013.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050014/00103050014.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050015/00103050015.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050016/00103050016.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050017/00103050017.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050018/00103050018.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050019/00103050019.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050020/00103050020.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050021/00103050021.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050022/00103050022.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050023/00103050023.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050024/00103050024.m3u8";
- // private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050025/00103050025.m3u8";
- private static String content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050026/00103050026.m3u8";
- public static void main(String[] args) throws Exception {
- //content = "http://baidu-yuwen-video.ai160.com/vs2m/001/00103050/00103050001/00103050001.m3u8";
- System.out.println("加密前:" + content);
- System.out.println("加密密钥和解密密钥:" + KEY);
- String encrypt = aesEncrypt(content);
- System.out.println("加密后:" + encrypt);
- String decrypt = aesDecrypt(encrypt, KEY);
- System.out.println("解密后:" + decrypt);
- }
- /**
- * base 64 encode
- * @param bytes 待编码的byte[]
- * @return 编码后的base 64 code
- */
- private static String base64Encode(byte[] bytes){
- return Base64.encodeBase64String(bytes);
- }
- /**
- * base 64 decode
- * @param base64Code 待解码的base 64 code
- * @return 解码后的byte[]
- * @throws Exception 抛出异常
- */
- private static byte[] base64Decode(String base64Code) throws Exception{
- return StringUtils.isEmpty(base64Code) ? null : new BASE64Decoder().decodeBuffer(base64Code);
- }
- /**
- * AES加密
- * @param content 待加密的内容
- * @param encryptKey 加密密钥
- * @return 加密后的byte[]
- */
- private static byte[] aesEncryptToBytes(String content, String encryptKey) throws Exception {
- KeyGenerator kgen = KeyGenerator.getInstance("AES");
- kgen.init(128);
- 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 待加密的内容
- * @return 加密后的base 64 code
- */
- public static String aesEncrypt(String content) {
- String encode = null;
- try {
- encode = base64Encode(aesEncryptToBytes(content, KEY));
- } catch (Exception e) {
- e.printStackTrace();
- }
- return encode;
- }
- /**
- * AES加密为base 64 code
- *
- * @param content 待加密的内容
- * @return 加密后的base 64 code
- */
- public static String aesEncrypt(String content,String secret) {
- String encode = null;
- try {
- encode = base64Encode(aesEncryptToBytes(content, secret));
- } catch (Exception e) {
- e.printStackTrace();
- }
- return encode;
- }
- /**
- * AES解密
- *
- * @param encryptBytes 待解密的byte[]
- * @param decryptKey 解密密钥
- * @return 解密后的String
- */
- private static String aesDecryptByBytes(byte[] encryptBytes, String decryptKey) throws Exception {
- KeyGenerator kgen = KeyGenerator.getInstance("AES");
- kgen.init(128);
- 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
- */
- public static String aesDecrypt(String encryptStr, String decryptKey) throws Exception {
- return StringUtils.isEmpty(encryptStr) ? null : aesDecryptByBytes(base64Decode(encryptStr), decryptKey);
- }
- }
|