当前位置:网站首页>【加密解密】明文加密解密-已实现【已应用】
【加密解密】明文加密解密-已实现【已应用】
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:

边栏推荐
- SMB + SMB2: Accessing shares return an error after prolonged idle period
- 数据可视化(一)
- 解决【命令行/终端】颜色输出问题
- 第八章:activiti多用户任务分配
- PCB布局必知必会:教你正确地布设运算放大器的电路板
- 上位机开发C#语言:模拟STC串口助手接收单片机发送数据
- 第四章:activiti RuntimeService设置获和取流程变量,及与taskService的区别,开始和完成任务时设置流程变量[通俗易懂]
- Opencv图像缩放和平移
- uniapp 连接ibeacon
- 教你本地编译运行一个IDEA插件,在IDEA里聊天、下棋、斗地主!
猜你喜欢

RT - Thread record (a, RT, RT Thread version - Thread Studio development environment and cooperate CubeMX quick-and-dirty)

How can project cost control help project success?

化繁为简!阿里新产亿级流量系统设计核心原理高级笔记(终极版)

Confessing in the era of digital transformation: Mai Cong Software allows enterprises to use data in the easiest way

STM32+ULN2003驱动28BYJ4步进电机(根据圈数正转、反转)

阿里全新推出:微服务突击手册,把所有操作都写出来了PDF

深入理解 Istio 流量管理的超时时间设置

The founder of the DFINITY Foundation talks about the ups and downs of the bear market, and where should DeFi projects go?

GPU-CUDA-图形渲染分析

This notebook of concurrent programming knowledge points strongly recommended by Ali will be a breakthrough for you to get an offer from a big factory
随机推荐
nyoj86 找球号(一) set容器和二分 两种解法
【翻译】混沌网+SkyWalking:为混沌工程提供更好的可观察性
FPGA:基础入门LED灯闪烁
2022华数杯数学建模A题环形振荡器的优化设计思路思路代码分享
SQL外连接之交集、并集、差集查询
阿里全新推出:微服务突击手册,把所有操作都写出来了PDF
电竞、便捷、高效、安全,盘点OriginOS功能的关键词
Meteorological data processing example - matlab string cutting matching and R language date matching (data splicing)
Confessing in the era of digital transformation: Mai Cong Software allows enterprises to use data in the easiest way
Chapter 4: activiti RuntimeService settings get and get process variables, and the difference from taskService, set process variables when starting and completing tasks [easy to understand]
告白数字化转型时代:麦聪软件以最简单的方式让企业把数据用起来
多线程(进阶) - 2.5w字总结
产品太多了,如何实现一次登录多产品互通?
Header file search rules when compiling with GCC
【MindSpore Easy-Diantong Robot-01】You may have seen many knowledge quiz robots, but this one is a bit different
力扣(LeetCode)216. 组合总和 III(2022.08.04)
2022杭电多校 第6场 1008.Shinobu Loves Segment Tree 规律题
Opencv算术操作
Getting started with Polkadot parachain development, this article is enough
Oracle 19.3 restart 环境