近期尝试使用JAVA语言的Bouncy Castle库去调用某些加密算法,在此记录使用步骤。
Bouncy Castle
- BouncyCastle是一种用于 Java 平台的开放源码的轻量级密码术包,支持大量的密码算法,能够提供数字证书转换所需要的类和方法。
一、配置
1.1 jar包下载
- 官网下载相关jar包
- 所需jar包:
- bcprov-jdk15to18-169.jar
- bcprov-ext-jdk15to18-169.jar
1.2 Jar包路径配置
- 将上述下载的两个jar包放到到系统JAVA配置路径下
- 具体为:JAVA/jdk1.8.0_261/jre/lib/ext/
- 修改配置文件xxx/jdk/jre/lib/security/java.security,相关位置添加security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider
1.3 项目调用
- IDEA创建Java_Project时需在架构中导入对应jar包实现调用。
1.4 测试代码
import javax.crypto.*;
public class test{
public static final String stringToEncrypt="This is a test.";
public static void main(String[] args) throws Exception{
System.out.print("Attempting to get a Blowfish key...");
KeyGenerator keyGenerator=KeyGenerator.getInstance("Blowfish");
keyGenerator.init(128);
SecretKey key=keyGenerator.generateKey();
System.out.println("OK");
System.out.println("Attempting to get a Cipher and encrypt...");
Cipher cipher=Cipher.getInstance("Blowfish/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE,key);
byte[] cipherText=cipher.doFinal(stringToEncrypt.getBytes("UTF8"));
System.out.println("OK");
System.out.println("Test completed successfully.");
}
}