< dependency > < groupId > com.github.ulisesbocchio </ groupId > < artifactId > jasypt-spring-boot-starter </ artifactId > < version > 3.0.3 </ version > </ dependency >
 public static String encryptWithSHA512(String plainText, String factor) {
        // 1. 创建加解密工具实例
        PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
        // 2. 加解密配置
        SimpleStringPBEConfig config = new SimpleStringPBEConfig();
        config.setPassword(factor);
        config.setAlgorithm("PBEWITHHMACSHA512ANDAES_256");
        // 为减少配置文件的书写,以下都是 Jasyp 3.x 版本,配置文件默认配置
        config.setKeyObtentionIterations( "1000");
        config.setPoolSize("1");
        config.setProviderName("SunJCE");
        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
        config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");
        config.setStringOutputType("base64");
        encryptor.setConfig(config);
        // 3. 加密
        return encryptor.encrypt(plainText);

Nacos中配置

auth=ENC(gaAuVVD5qwYnI3/AKHGczgjxmrae9AzYE7kEsIJ7oksX4R+IwQp+6l32LmDBcIXi)

解密password配置

idea配置

-Djasypt.encryptor.password=123456

编辑application配置

配置vm参数

配置文件中配置

jar启动配置方式

Java -jar xxx.jar -Djasypt.encryptor.password=123456
@Slf4j
@Api("测试")
@RestController
@RequestMapping("test")
public class TestController {
    @Value("${auth}")
    private String auth;
    @GetMapping("/auth")
    public String auth() {
        return auth;

验证返回结果

2021-07-08 16:00:01.918  INFO 48940 --- [           main] c.u.j.c.StringEncryptorBuilder           : Encryptor config not found for property jasypt.encryptor.algorithm, using default value: PBEWITHHMACSHA512ANDAES_256
2021-07-08 16:00:01.918  INFO 48940 --- [           main] c.u.j.c.StringEncryptorBuilder           : Encryptor config not found for property jasypt.encryptor.key-obtention-iterations, using default value: 1000
2021-07-08 16:00:01.919  INFO 48940 --- [           main] c.u.j.c.StringEncryptorBuilder           : Encryptor config not found for property jasypt.encryptor.pool-size, using default value: 1
2021-07-08 16:00:01.920  INFO 48940 --- [           main] c.u.j.c.StringEncryptorBuilder           : Encryptor config not found for property jasypt.encryptor.provider-name, using default value: null
2021-07-08 16:00:01.920  INFO 48940 --- [           main] c.u.j.c.StringEncryptorBuilder           : Encryptor config not found for property jasypt.encryptor.provider-class-name, using default value: null
2021-07-08 16:00:01.921  INFO 48940 --- [           main] c.u.j.c.StringEncryptorBuilder           : Encryptor config not found for property jasypt.encryptor.salt-generator-classname, using default value: org.jasypt.salt.RandomSaltGenerator
2021-07-08 16:00:01.922  INFO 48940 --- [           main] c.u.j.c.StringEncryptorBuilder           : Encryptor config not found for property jasypt.encryptor.iv-generator-classname, using default value: org.jasypt.iv.RandomIvGenerator
 

可在配置文件中自定义修改

  • 默认加密算法 jasypt.encryptor.algorithm, using default value: PBEWITHHMACSHA512ANDAES_256
  • 默认的迭代次数 jasypt.encryptor.key-obtention-iterations, using default value: 1000
  • 默认池大小jasypt.encryptor.pool-size, using default value: 1
  • 默认生成盐的类:org.jasypt.salt.RandomSaltGenerator
  • 默认IV生成器类:org.jasypt.iv.RandomIvGenerator
  • 默认IV生成器类:org.jasypt.iv.RandomIvGenerator
Exception in thread "main" org.jasypt.exceptions.EncryptionOperationNotPossibleException: Encryption raised an exception. A possible cause is you are using strong encryption algorithms and you have not installed the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files in this Java Virtual Machine
	at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.handleInvalidKeyException(StandardPBEByteEncryptor.java:1207)
	at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.encrypt(StandardPBEByteEncryptor.java:996)
	at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.encrypt(StandardPBEStringEncryptor.java:655)
	at org.jasypt.encryption.pbe.PooledPBEStringEncryptor.encrypt(PooledPBEStringEncryptor.java:465)
	at com.zuoja.mall.farm.JasypUtil.encryptWithSHA512(JasypUtil.java:78)
	at com.zuoja.mall.farm.JasypUtil.main(JasypUtil.java:112)

因为某些国家的进口管制限制,JDK默认对加解密有一定的限制,默认不能使用256长度秘钥加解密。

解决方法就下载官方JCE无限制强度加密策略文件,将Java\jdk1.8.0_77\jre\lib\security\路径下的local_policy.jar和US_export_policy.jar覆盖即可。

官方网站提供了JCE无限制权限策略文件的下载:

  • 下载
    在这里插入图片描述
    在这里插入图片描述

  • 替换
    找到java 安装目录jre/lib/security替换local_policy.jar和US_export_policy.jar
    在这里插入图片描述

如果还报错就把jdk下面jre/lib/security替换local_policy.jar和US_export_policy.jar也替换

SpringBoot + SpringCloud项目框架 hikari,jasypt,mysql,mybatis-plus,generatorCode,pagehelper Redis,生菜 尤里卡,假装,httpclient,okhttp,色带,hystrix 自定义注解,注解切面,接口方法切面,Mapper切面,swagger 几种工具,跨域配置,防范XSS攻击,统一异常处理,自定义序列化 自定义线程池,定时任务 时间工具类,MD5加密工具类,Jasypt加解密工具类,反射工具类,正则校正工具类,串行工具类,hutool itextpdf,核心渲染器 番石榴,gson,fastjson,杰克逊 Lombok,slf4j,登录 十种排序算法(冒泡排序,选择排序,插入排序,希尔排序,归并排序,快速排序,堆排序,计数排序,桶排序,基数排序) 十大经典算法(二分查找算法,分治算法,动
平静认证:85 工程的结构 冷静的父母包括:swagger,redis,jasypt,email,jwt,nacos,openfeign,springboot-admin 冷静-常见包括:言行,安全 镇静核心包括:mysql,mybatis-plus,mybatis-plus-dynamic-dataso
目录1. 简介2. 引入依赖3. 自定义加解密的方式4. 获取密文5. 编写配置文件6. 验证结果 1. 简介 在项目开发的过程,经常会需要在配置文件存储一些敏感的信息,如数据库的账号密码,支付相关信息,密钥等等,这些信息在开发的过程一般是以明文的方式存储在配置文件。这种方式的存储会存在非常大的安全隐患。jasypt能够很好的解决这一类的问题,特此记录,一遍后面学习使用。 2. 引入依赖 <!--springboot整合jasypt--> <dependency>
jasypt-spring-boot-starter实现加解密和数据返显 一、jasypt-spring-boot-starterspringboot的加解密(默认加密法) <!--实现自动 加密解密--> <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-sprin
Pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven
标题jasypt-spring-boot-starternacos热加载冲突 用jasypt-spring-boot-starter3.0.2后部署到生产环境启动会出现下面情况,当版本超过 2.0.0 就无法刷新,具体什么原因还未找到,更换版本未2.0.0时就解决了 <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-star
赠送jar包:jasypt-spring-boot-3.0.4.jar; 赠送原API文档:jasypt-spring-boot-3.0.4-javadoc.jar; 赠送源代码:jasypt-spring-boot-3.0.4-sources.jar; 赠送Maven依赖信息文件:jasypt-spring-boot-3.0.4.pom; 包含翻译后的API文档:jasypt-spring-boot-3.0.4-javadoc-API文档-文(简体)-英语-对照版.zip; Maven坐标:com.github.ulisesbocchio:jasypt-spring-boot:3.0.4; 标签:github、ulisesbocchio、jasyptspringboot英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
赠送jar包:jasypt-spring-boot-3.0.4.jar; 赠送原API文档:jasypt-spring-boot-3.0.4-javadoc.jar; 赠送源代码:jasypt-spring-boot-3.0.4-sources.jar; 赠送Maven依赖信息文件:jasypt-spring-boot-3.0.4.pom; 包含翻译后的API文档:jasypt-spring-boot-3.0.4-javadoc-API文档-文(简体)版.zip; Maven坐标:com.github.ulisesbocchio:jasypt-spring-boot:3.0.4; 标签:github、ulisesbocchio、jasyptspringboot文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档的代码和结构保持不变,注释和说明精准翻译,请放心使用
jasypt-spring-boot 用于Spring Boot 1.4.X,1.5.X和2.0.X的集成 Jasypt Spring BootSpring Boot应用程序的属性源提供了加密支持。 有3种方法可以将jasypt-spring-boot集成到您的项目: 如果使用@SpringBootApplication或@EnableAutoConfiguration只需将启动程序jar jasypt-spring-boot-starter到您的类路径, @SpringBootApplication在整个Spring环境启用可加密属性 将jasypt-spring-boot添加到您的类路径,并将@EnableEncryptableProperties添加到您的主Configuration类,以在整个Spring环境启用可加密属性 将jasypt-spring-boot添加到您的类路径,并使用@EncrytablePropertySource声明各个可加密的属性源 什么是新的? 更新05/31/2020:版本3.0.3发行版包括 修正了一些小错误 版本对应的坑 使用的时候还是遇到一个坑,就是jasypt的版本与spring boot版本存在对应情况。可以看到jasypt是区分java7和java8的,也存在依赖spring版本的情况。 自己尝试了一下 在使用jasypt-spring-boot-starter的前提下 <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.2</version> </dependency> 2. 在 application.properties 文件配置加密参数,如下: jasypt.encryptor.password=yourPassword jasypt.encryptor.algorithm=PBEWithMD5AndDES 其,yourPassword 为你自己设置的密码,algorithm 为加密算法,这里使用 PBEWithMD5AndDES 算法。 3. 在需要加密的字段上使用 @Value 注解,并在属性值前添加 ENC() 前缀,如下: @Value("${my.property}") private String myProperty; 其,my.property 即为需要加密的字段,在属性值前添加 ENC() 前缀,如下: my.property=ENC(encryptedValue) 其,encryptedValue 为加密后的值。 4. 在启动类上添加注解 @EnableEncryptableProperties,如下: @SpringBootApplication @EnableEncryptableProperties public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); 5. 运行程序,即可使用 jasypt-spring-boot-starter 进行加解密。 注意,以上步骤仅做参考,具体使用方法需根据自己的实际情况进行调整。
spring cloud config java.lang.IllegalStateException: Could not locate PropertySource and the fail fa 17873 FlywayException: Validate failed: Detected resolved migration not applied to database: 1.0.020190110 15789 spring cloud config java.lang.IllegalStateException: Could not locate PropertySource and the fail fa JNeuman: