赞
踩
官网: http://www.jasypt.org/index.html
Jasypt 是一个 java 库,它允许开发人员以最小的努力将基本的加密功能添加到他/她的项目中,而无需深入了解密码学的工作原理。
· 高安全性、基于标准的加密技术,适用于单向和双向加密。加密密码、文本、数字、二进制文件…
· 适合集成到基于Spring的应用程序中,也可以与Spring Security透明地集成。
· 用于加密应用程序(即数据源)配置的集成功能
· 多处理器/多核系统中高性能加密的特定功能。
…
–这里以3.0.3版本,对应的jasypt版本 1.9.3
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
这里介绍两种:
· 命令行
· java代码
进入到本地jar 包仓库,使用cmd 或者 git bash 工具
加密:
java -cp ./jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI password=pkslow algorithm=PBEWithMD5AndTripleDES input=password
解密:
java -cp ./jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI p assword=salt algorithm=PBEWithMD5AndTripleDES input=yZ+fSk2aKpbveRDOGHbIRzPVX5AT 601v
加解密就只是方法名称不同:
示例:
@Test public void jasyptTest() { StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor(); EnvironmentPBEConfig config = new EnvironmentPBEConfig(); //config.setAlgorithm 设置加密方式 config.setAlgorithm("PBEWithMD5AndTripleDES"); //config.setPassword 设置密钥 config.setPassword("salt"); standardPBEStringEncryptor.setConfig(config); //设置明文密码 String input = "123456"; //encrypt是加密方法,decrypt是解密方法 String encryptedText = standardPBEStringEncryptor.encrypt(input); log.info("加密结果: " + encryptedText); log.info("解密结果: " + standardPBEStringEncryptor.decrypt(encryptedText)); }
只需要使用默认的前缀 ENC()包裹,括号内就是加密后的字符
url: jdbc:mysql://127.0.0.1:3306/db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: ENC(yZ+fSk2aKpbveRDOGHbIRzPVX5AT 601v)
jasypt:
encryptor:
password: salt
@Bean("jasyptStringEncryptor")
public StringEncryptor stringEncryptor1() {
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
SimpleStringPBEConfig config = new SimpleStringPBEConfig();
config.setPassword("d947a954-salt");
config.setAlgorithm("PBEWithMD5AndTripleDES");
config.setKeyObtentionIterations("1000");
config.setPoolSize(Runtime.getRuntime().availableProcessors());
config.setProviderName("SunJCE");
config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
config.setIvGeneratorClassName("org.jasypt.iv.NoIvGenerator");
config.setStringOutputType("base64");
encryptor.setConfig(config);
return encryptor;
}
# 项目启动时,带入以下参数
-Djasypt.encryptor.password=salt
-END
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。