wiki
Jasypt ,Java Simplified Encryption ,是一个简单的加密工具包,它可以提供高安全性的加密技术,并与 Hibernate、Spring 等框架有很好的相融性。
1. 引入
1 2 3 4 5 6 7 8 9
| <properties> <jasypt.version>1.9.3</jasypt.version> </properties>
<dependency> <groupId>org.jasypt</groupId> <artifactId>jasypt</artifactId> <version>${jasypt.version}</version> </dependency>
|
2. 使用
加解密可以编写 Java 代码或直接使用 jar 命令调用工具包。
1. 代码
1 2 3 4 5 6 7 8 9 10 11 12 13
| StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
encryptor.setAlgorithm("PBEWithMD5AndDES");
encryptor.setPassword("salt");
encryptor.setIvGenerator(new NoIvGenerator());
String encryptedText = encryptor.encrypt(MY_PASSWORD);
String plainText = encryptor.decrypt(MY_Encrypted_PASSWORD);
|
2. jar 包
1. 加密
1 2 3 4 5 6
| java -cp jasypt-1.9.3.jar \ org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI \ algorithm=PBEWithMD5AndDES \ password=salt \ ivGeneratorClassName=org.jasypt.iv.NoIvGenerator \ input="MY_PASSWORD"
|
结果输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| ----ENVIRONMENT-----------------
Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.202-b08
----ARGUMENTS-------------------
algorithm: PBEWithMD5AndDES input: abc123 password: salt
----OUTPUT----------------------
Kh4BPjpQIt00Af/s+1Fx8w==
|
org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI
为加密使用的类
algorithm
: 加密算法
password
: 盐值(后面解密也需使用这个盐值进行解密)
input
:待加密的内容
ivGeneratorClassName
: AES 初始的向量类
OUTPUT
: 加密之后的内容
2. 解密
1 2 3 4 5 6
| java -cp jasypt-1.9.3.jar \ org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI \ password=salt \ algorithm=PBEWithMD5AndDES \ ivGeneratorClassName=org.jasypt.iv.NoIvGenerator \ input="MY_Encrypted_PASSWORD" \
|
输出结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| ----ENVIRONMENT-----------------
Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.202-b08
----ARGUMENTS-------------------
algorithm: PBEWithMD5AndDES input: Kh4BPjpQIt00Af/s+1Fx8w== password: salt
----OUTPUT----------------------
abc123
|
org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI
为解密使用的类
- 其他参数同加密
3. Spring 结合
引入包
1 2 3 4 5 6 7 8 9
| <properties> <jasypt.spring.boot.version>3.0.4</jasypt.spring.boot.version> </properties>
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>${jasypt.spring.boot.version}</version> </dependency>
|
配置项:
1 2 3
| jasypt.encryptor.password=salt jasypt.encryptor.algorithm=PBEWithMD5AndDES jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator
|
使用时,在配置文件中,将明文使用上述方式加密后,将密文替换明文,并用 ENC
包裹:
1
| datasource.password=ENC(Kh4BPjpQIt00Af/s+1Fx8w==)
|