SpringBoot使用jasypt加解密异常

今天在项目中使用jasypt加解密时出现如下异常:

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

去到官网下载了两个和安全相关的包之后问题解决。
下载地址:https://www.oracle.com/java/technologies/javase-jce8-downloads.html
下载之后放置到JAVA_HOME\jdk1.8.0_72\jre\lib\security目录底下,重新运行加解密代码问题解决。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Spring Boot集成Jasypt用于安全地存储和处理敏感数据是一种常见的做法。以下是基本的配置步骤: 1. 添加依赖:首先,在你的`pom.xml`或`build.gradle`文件中添加Jasypt的Spring Boot starter依赖。 ```xml <!-- Maven --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jasypt</artifactId> </dependency> // Gradle implementation 'org.springframework.boot:spring-boot-starter-jasypt' ``` 2. 配置属性:在`application.properties`或`application.yml`文件中设置相关的加密和解密参数。例如: ```properties # 加密算法 spring.jasypt.encryptor.algorithm=BCrypt # 密钥 spring.jasypt.encryptor.password=your_secret_key # 如果使用环境变量替换硬编码的密钥 spring.jasypt.encryptor.key-alias=jasypt # 明文源路径或资源名 spring.jasypt.encryptor.encrypt-context-headers=**/*.txt ``` 3. 使用@Encryptable注解:如果你想对实体类字段进行加密,可以使用`@Encryptable`注解,并提供一个解密后的getter方法。 ```java import org.springframework.core.annotation.Encryptable; @Entity public class User { @Encryptable private String password; //... } ``` 4. 解密服务:如果需要在Controller或Service中进行解密操作,你可以创建一个`PasswordEncoder`实现或使用Spring提供的默认实现: ```java import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; @Component public class CustomPasswordEncoder implements PasswordEncoder { //... 实现PasswordEncoder接口的方法 } ``` 5. 使用密码编码器:在处理用户注册或登录时,使用自定义的`PasswordEncoder`解码明文密码。 ```java @Autowired private CustomPasswordEncoder passwordEncoder; @PostMapping("/register") public User register(@RequestBody User user) { user.setPassword(passwordEncoder.encode(user.getPassword())); return userService.save(user); } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值