import java.io.UnsupportedEncodingException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException; import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec; import com.utils.CHexConver; /**
* @author kelin.ll
* @date on 2018/6/21
*/
public class TestPKCS5Demo {
// key
private static String sKey="****************";
// IV
private static String ivParameter="****************"; // 正常加解密逻辑中使用
private static final String ALGORITHM = "AES/CBC/PKCS5Padding";
// 本地测试 hex值得解密时使用
//private static final String ALGORITHM = "AES/CBC/NoPadding";
//加密
public static byte[] AES_cbc_encrypt(byte[] srcData,byte[] key,byte[] iv) throws NoSuchAlgorithmException, NoSuchProviderException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException
{
SecretKeySpec keySpec = new SecretKeySpec(key, "AES");
Cipher cipher = Cipher.getInstance(ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, keySpec, new IvParameterSpec(iv));
byte[] encData = cipher.doFinal(srcData);
return encData;
} //解密
public static byte[] AES_cbc_decrypt(byte[] encData,byte[] key,byte[] iv) throws NoSuchAlgorithmException, NoSuchProviderException, NoSuchPaddingException, InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException
{
SecretKeySpec keySpec = new SecretKeySpec(key, "AES");
Cipher cipher = Cipher.getInstance(ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, keySpec, new IvParameterSpec(iv));
byte[] decbbdt = cipher.doFinal(encData);
return decbbdt;
} public static void main(String[] args) throws InvalidKeyException, NoSuchAlgorithmException, NoSuchProviderException, NoSuchPaddingException, InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException { byte[] key = sKey.getBytes();
byte[] iv = ivParameter.getBytes();
String test = "96 4d a0 c3 96 6e 48 c7 49 e4 43 79 cd 75 91 69"
+ "42 7f 0e bb e2 be 60 e7 40 e2 f0 5b 32 bf 27 da"
+ "93 86 bb 78 1f bc 0c 46 7c 73 4e 72 d5 0c 9e 7c"
+ "67 3d 08 39 33 32 54 ad e1 7f b6 f9 14 d5 61 e8"
+ "bc 1f 58 79 2a a8 d6 9a 9d 15 82 f7 26 00 8b 9d"
+ "9d 21 e5 55 11 f0 54 93 d6 30 34 20 a2 20 22 23"
+ "fe cd f2 83 cf ab d0 87 db f5 b8 b4 0e 59 6e ec"
+ "fc d7 6a 96 2a ea c8 7c 73 2c c6 64 10 c8 a3 77"
+ "14 94 c6 97 4c 2f 37 db 55 d3 12 c0 6c 4c 73 ce"
+ "00 b5 43 d8 f2 e3 e4 7d c4 a3 ba 8e 9b 22 75 e1"
+ "7b ea ce 16 4c 4f 04 20 f5 30 f7 41 de 2a 89 cf"
+ "9d 4b 21 9c d2 1a 0f ab ac 00 15 01 1c 11 af 80"
+ "a2 da f3 6f 1e df 6c 4d 1e 04 71 82 a0 3c 2e 8d"
+ "38 1b a0 66 37 c8 45 a2 33 b4 d6 7d 39 32 05 d5"
+ "1a a1 b7 20 0b f6 dc 2e f6 35 c0 81 88 3f 75 1d"
+ "a4 bc 31 7d 9e b8 82 a3 28 0d 34 d0 93 82 b9 12"
+ "2b 07 9f b4 9a a2 24 b9 9a a1 6e 70 27 e1 d7 21"
+ "c6 6b 5c 7b 3e 6b 1f 23 27 29 b5 cc cf 0a ab 05"
+ "fa 02 20 c3 02 ee 0d 00 61 a0 b7 54 a5 5f 5a 90";
byte[] contentByte = CHexConver.hexStr2Bytes(test); byte[] encbt = AES_cbc_encrypt(test.getBytes(),key,iv);
String encStr = new String(encbt);
System.out.println(encStr); byte[] decbt = AES_cbc_decrypt(encbt,key,iv);
//byte[] decbt = AES_cbc_decrypt(contentByte,key,iv);
String decStr = new String(decbt);
System.out.println(decStr); }
}

  

JAVA_AesCBC纯净例子的更多相关文章

  1. JAVA_AesCBC例子

    import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.Secre ...

  2. 最简单的基于FFmpeg的解码器-纯净版(不包含libavformat)

    ===================================================== 最简单的基于FFmpeg的视频播放器系列文章列表: 100行代码实现最简单的基于FFMPEG ...

  3. 最简单的基于FFmpeg的编码器-纯净版(不包含libavformat)

    ===================================================== 最简单的基于FFmpeg的视频编码器文章列表: 最简单的基于FFMPEG的视频编码器(YUV ...

  4. 最简单的基于FFmpeg的AVfilter例子(水印叠加)

    ===================================================== 最简单的基于FFmpeg的AVfilter例子系列文章: 最简单的基于FFmpeg的AVfi ...

  5. Windows折腾之路 兼谈纯净强迫情节

    早期新鲜感 想当年,终于有了第一台属于自己自由处置的电脑,1.2Ghz的CPU,256兆的内存.这在CPU刚刚上1G的年代,不说顶级,也算主流.操作系统呢,在别人的帮助下,装上新鲜的XP,各种的华丽, ...

  6. SQLServer地址搜索性能优化例子

    这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享. 1.需求 1.1 基本需求: 根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内. 1.2 数据库地址表结构和数 ...

  7. C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)

    第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel, ...

  8. REGEX例子

    作为REGEX的例子,代码9.3显示了一个给定的文件有多少行,具有给定的模式,通过命令行输入(注:有更有效率的方式来实现这个功能,如Unix下的grep命令,在这里只是给出了另一种方式).这个程序像下 ...

  9. CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子

    CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子 本文涉及的VolumeRendering相关的C#代码是从(https://github.com/toolchai ...

随机推荐

  1. day 21 - 1 包,异常处理

    创建目录代码 1. 无论是 import 形式还是 from...import 形式,凡是在导入语句中(而不是在使用时)遇到带点的,都要第一时间提高警觉:这是关于包才有的导入语法2. 包是目录级的(文 ...

  2. Centos 上部署 tomcat7

     在 Centos 上部署 tomcat7 搜索tomcat,选下面红色框框的官网 选箭头指着的版本7, 选 tar.gz 格式, 下载完压缩包,使用 ftpx 工具,放在 centos 的 /opt ...

  3. spring boot2.0.4集成druid,用jmeter并发测试工具调用接口,druid查看监控的结果

    一.项目介绍(本项目用的编程语言是jdk8,项目源码:https://github.com/zhzhair/spring-boot-druid.git) 1.引入pom依赖: <dependen ...

  4. 2018-2019-2 20165325 网络对抗技术 Exp4 恶意代码分析

    2018-2019-2 20165325 网络对抗技术 Exp4 恶意代码分析 实验内容(概要) 一.系统(联网)运行监控 1. 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,逐步排查并且 ...

  5. python pymysql.err.InternalError: (1366, "Incorrect string value: '\\xE9\\x9F\\xA9\\xE6\\xA2\\x85...

    python3使用pymysql报错:   image.png 代码: #插入数据 try: sql = 'INSERT INTO classb (a_id,name,age) VALUES (6,& ...

  6. 2019 icpc南昌全国邀请赛-网络选拔赛J题 树链剖分+离线询问

    链接:https://nanti.jisuanke.com/t/38229 题意: 给一棵树,多次查询,每次查询两点之间权值<=k的边个数 题解: 离线询问,树链剖分后bit维护有贡献的位置即可 ...

  7. PC设置局域网打印机

    打印机采用局域网网络连接方式,下面以Windows系统为例说明如何添加此打印机. 将电脑接入局域网 在“控制面板”中打开“设备与打印机”,点击“添加打印机” 在弹出列表中,会自动出现打印机型号,选中它 ...

  8. spring-第一章-基本用法

    一,简介 spring是一个开源框架 是一个非常强大的容器框架,分离项目组件之间的依赖关系,由spring容器管理整个项目的资源和配置; 通常我们可以称spring是容器大管家(项目大管家) 功能: ...

  9. 558. Quad Tree Intersection

    https://leetcode.com/problems/quad-tree-intersection/description/ 我觉得是用意挺好的一题目.求两个四叉树的逻辑union,可惜测试用例 ...

  10. Docker 学习8 Dockerfile详解2

    一.继续上章节Docker学习7 CMD命令后. 11.ENTRYPOINT a.容器启动后相当于会启动ENTRYPOINT + CMD 命令,CMD相当于参数传给entrypoint的 [root@ ...