BouncyCastle使用
来源:互联网 发布:源码怎么用 编辑:程序博客网 时间:2024/06/02 01:19
1、为什么要使用BouncyCastle?
我们平常都使用jdk自带的加密包对数据进行加密,加密方式也都是使用的默认的,如果我们想选择别的加密方式,发现会报错,比如如下代码:
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding");cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".getBytes("UTF-8"), "AES"));cipher.doFinal("QWEASDZS".getBytes("UTF-8"));这时候我们就需要借助BouncyCastle了。
2、如何使用BouncyCastle?
2.1、方式一
(1)去BouncyCastle官网下载provider的包,然后放入$JAVA_HOME\jre\lib\ext目录下;
(2)修改配置文件$JAVA_HOME\jre\lib\security\java.security,加入一行配置:security.provider.按顺序填数字=org.bouncycastle.jce.provider.BouncyCastleProvider
(3)代码如下:
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding");cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".getBytes("UTF-8"), "AES"));cipher.doFinal("QWEASDZS".getBytes("UTF-8"));
2.2、方式二
(1)在代码中通过maven引入BouncyCastle的包
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.56</version>
</dependency>
(2)无需像方式一一样修改配置文件,直接在代码中手动添加provider:
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding");cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".getBytes("UTF-8"), "AES"));cipher.doFinal("QWEASDZS".getBytes("UTF-8"));
3、注意点
出于某些原因,可能需要去官网下载JCE包,替换掉$JAVA_HOME\jre\lib\security目录下的内容,其次密钥的长度也要注意。
阅读全文
0 0
- BouncyCastle使用
- BouncyCastle使用教程
- bouncycastle
- BouncyCastle 中使用SM3做hash
- 一个使用bouncycastle进行安全操作的实用类
- BouncyCastle JCE 的安装配置及在java中的使用
- 使用BouncyCastle求ECC上的K倍点
- BouncyCastle JCE 的安装配置及在java中的使用
- bouncycastle 配置
- .NET中使用BouncyCastle动态库实现RSA方式加密方法
- BouncyCastle JCE实践(一)
- BouncyCastle JCE实践(二)
- BouncyCastle JCE实践(三)
- BouncyCastle JCE实践(四)
- BouncyCastle JCE实践(五)
- BouncyCastle JCE实践(六)
- 安装配置BouncyCastle JCE
- BouncyCastle JCE实践(二)
- 最小生成树:Prim算法
- 自己用的C#基础学习笔记(二)——C#面向对象(1)
- 程序员面试失败的原因
- SVG精髓-笔记与实践
- RocketMQ原理解析-broker 4.HA & master slave
- BouncyCastle使用
- 数据结构与算法学习总结-线性表基础
- Ubuntu 16.04 常用软件安装命令
- 生成一段号段的mac
- 综合练习一
- python types模块MethodType的一个例子
- taotao——MyEclipse中maven项目jar包不会自动下载解决办法
- RocketMQ原理解析-broker 6.索引服务
- Linux之MariaDB基础总结(一)