当前位置:网站首页>【加密解密】明文加密解密-已实现【已应用】
【加密解密】明文加密解密-已实现【已应用】
2022-08-05 10:30:00 【刘贵庆】
目录:
一、加载jasypt包。
二、jasypt配置、数据库配置
三、项目正常运行
四、加密解密方法
五、报错及解决方法
具体内容:
一、加载jasypt包
gradle配置:
implementation group: 'com.github.ulisesbocchio', name: 'jasypt-spring-boot-starter', version: '3.0.4'或者:pom.xml文件:
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.4</version>
</dependency>二、jasypt配置、数据库配置
application.properties文件:
#123wes为自定义加密盐:(jasypt配置一定要放最上面)
jasypt.encryptor.password=123wes
#加密方式 (切勿修改,若修改:同加密方法一并修改。)
jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator
jasypt.encryptor.algorithm=PBEWithMD5AndDES
#数据连接配置:
spring.datasource.jdbc-url=jdbc:mysql://localhost:3306/databasesName?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
spring.datasource.username= ENC(Bf1Y3jZLLuLnkX1T2kXu9/r/Pil//fM6)
spring.datasource.password= ENC(dfCDWWWEEgs4YXDDFKKK9kGW)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver或者:yml文件:
jasypt:
encryptor:
password:123wes
iv-generator-classname:org.jasypt.iv.NoIvGenerator
algorithm:PBEWithMD5AndDES
#数据库配置:
spring:
datasource:
jdbc-url:mysql://localhost:3306/databasesName?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
username: ENC(Bf1Y3jZLLuLnkX1T2kXu9/r/Pil//fM6)
password: ENC(dfCDWWWEEgs4YXDDFKKK9kGW)
driver-class-name:com.mysql.cj.jdbc.Driver三、正常运行
至此;点击Run运行项目。可正常运行。
四、加密解密方法
用户密码加密解密 :(注意:仅用来获取密码加密字符串,之后去掉,打包时不打此文件。)
TestJasypt.java文件:
package xxx;
import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
public class TestJasypt {
//获取密文:
public static void main(String[] args) {
// 加密
//password为自定义:加密盐,value为需要加密的字符串
System.out.println(setJasypt("123wes", "[email protected]"));
// 解密
password为加密盐,value为需要解密的:加密密文。
System.out.println(getJasypt("123wes", "Bf1Y3jZLLuLnkX1T2kXu9/r/Pil//fM6"));
}
/* 输出:密文:
Bf1Y3jZLLuLnkX1T2kXu9/r/Pil//fM6
// 放入配置文件如:password: ENC(Bf1Y3jZLLuLnkX1T2kXu9/r/Pil//fM6)
解密后:
[email protected]
*/
//注意:发布时,不加载此文件。
public static String setJasypt(String password, String value) {
PooledPBEStringEncryptor encryptOr = new PooledPBEStringEncryptor();
encryptOr.setConfig(ssPBEC(password));
String result = encryptOr.encrypt(value);
return result;
}
public static String getJasypt(String password, String value) {
PooledPBEStringEncryptor encryptOr = new PooledPBEStringEncryptor();
encryptOr.setConfig(ssPBEC(password));
String result = encryptOr.decrypt(value);
return result;
}
public static SimpleStringPBEConfig ssPBEC(String password) {
SimpleStringPBEConfig config = new SimpleStringPBEConfig();
config.setPassword(password);
config.setAlgorithm(StandardPBEByteEncryptor.DEFAULT_ALGORITHM);
config.setKeyObtentionIterations("1000");
config.setPoolSize("1");
config.setProviderName(null);
config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
config.setStringOutputType("base64");
return config;
}
}
五、报错及解决方法
报错:Failed to bind properties under 'spring.datasource.password' to java.lang.String:

边栏推荐
- 秘乐短视频挖矿系统开发详情
- 第五章:activiti流程分流判断,判断走不同的任务节点
- 2022 Huashu Cup Mathematical Modeling Question A Optimization Design Ideas for Ring Oscillators Code Sharing
- High-quality DeFi application building guide to help developers enjoy DeFi Summer
- uniapp中的view高度设置100%
- JS introduction to reverse the recycling business network of learning, simple encryption mobile phone number
- 用户考试分数大于单科科目平均分的查询
- 2022 Hangzhou Electric Power Multi-School Session 6 1008.Shinobu Loves Segment Tree Regular Questions
- 攻防世界-PWN-new_easypwn
- [Strong Net Cup 2022] WP-UM
猜你喜欢

PCB layout must know: teach you to correctly lay out the circuit board of the op amp

MySQL transactions

What is SPL?

语音社交软件开发——充分发挥其价值

Data Middle Office Construction (10): Data Security Management

登录功能和退出功能(瑞吉外卖)

STM32+ULN2003 drives 28BYJ4 stepper motor (forward and reverse according to the number of turns)

项目成本控制如何帮助项目成功?

Getting started with Polkadot parachain development, this article is enough

NowCoderTOP35-40 - continuous update ing
随机推荐
LeetCode 216. Combined Sum III (2022.08.04)
In-depth understanding of timeout settings for Istio traffic management
60行从零开始自己动手写FutureTask是什么体验?
攻防世界-PWN-new_easypwn
MySQL data view
秘乐短视频挖矿系统开发详情
[Office] Collection of Microsoft Office download addresses (offline installation and download of Microsoft's official original version)
SMB + SMB2: Accessing shares return an error after prolonged idle period
语音社交软件开发——充分发挥其价值
NowCoderTOP35-40 - continuous update ing
Login function and logout function (St. Regis Takeaway)
three.js debugging tool dat.gui use
Chapter 4: In the activiti process, variable transmission and acquisition process variables, setting and acquiring multiple process variables, setting and acquiring local process variables "recommende
Offensive World-PWN-new_easypwn
【MySQL基础】-【数据处理之增删改】
FPGA:基础入门LED灯闪烁
技术干货 | 基于 MindSpore 实现图像分割之豪斯多夫距离
FPGA: Basic Getting Started Button Controlling LED Lights
FPGA:开发环境Vivado的使用
第五章:redis持久化,包括rdb和aof两种方式[通俗易懂]