数据库密码加密解密
1.引入依赖

 <dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>2.1.0</version></dependency>

2.配置秘钥
#jasypt:
#encryptor:
#password: EbfYkitulv73I2p0mXI50JMXoaxZTKJ7
这种方式上传后能看到秘钥不合适改为下面这种方式

本地运行

改为通过环境变量来传参打包

3.对数据库进行加密

import org.gomeet.southsea.WebAppApplication;
import org.jasypt.encryption.StringEncryptor;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.web.WebAppConfiguration;@RunWith(SpringRunner.class)
@SpringBootTest(classes = WebAppApplication.class)
@WebAppConfiguration
public class EncryptTest {@Autowiredprivate StringEncryptor encryptor;@Testpublic void getPass() {String url = encryptor.encrypt("jdbc:mysql://rm-uf68p71xwhe12n103zo.mysql.rds.aliyuncs.com:3306/gomeet_x?characterEncoding=utf-8");String name = encryptor.encrypt("shenzheng_rw1");String password = encryptor.encrypt("SheZhEn9843#kjkdfdff");System.out.println("加密后url"+url);System.out.println("加密后name"+name);System.out.println("加密后password"+password);}
}4.修改配置文件为加密后的```java
spring:datasource:name: dburl: ENC(4RND3PPFNZGgC164PzRr+eQUssSljuWTg4V4VtpfgqNtlY0NQ12cwxJ2oKqF2IKRcvrCDIhuGaVl36b1oo7GSc/FlgWxCFB8AmS3svObFkAIqt9d/pDmZ+Qk9lBxXox7jyOKZOx+viDOZaC0NggfgQ==)username: ENC(TsmrCCGhwT0I2uwi/aSqt5HA7rU+Tg4e)password: ENC(dmV99ecbcKjL09oBSrp4F0nG7COndZ+JLDrzgI1gQFM=)driver-class-name: com.mysql.jdbc.Driver

5.打成jar包方式运行传入秘钥
java -jar -Djasypt.encryptor.password=G0CvDz7oJn6 xxx.jar

自己配置加密解密方法

//自定义加密方法
@Configuration
public class EncryptPropertyConfig{@Bean("jasyptStringEncryptor")public StringEncryptor stringEncryptor() {PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();SimpleStringPBEConfig config = new SimpleStringPBEConfig();config.setPassword("password");config.setAlgorithm("PBEWithMD5AndDES");config.setKeyObtentionIterations("1000");config.setPoolSize("1");config.setProviderName("SunJCE");config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");         config.setStringOutputType("base64");encryptor.setConfig(config);return encryptor;}
}自定义解密方法
@Configuration
public class DecyptPropertyConfig {@Bean(name = "encryptablePropertyResolver")public EncryptablePropertyResolver encryptablePropertyResolver() {return new EncryptionPropertyResolver();}class EncryptionPropertyResolver implements EncryptablePropertyResolver {@Overridepublic String resolvePropertyValue(String value) {if (StringUtils.isBlank(value)) {return value;}// 值以enc开头的需要解密if (value.startsWith("ENC")) {return JasyptUtils.decyptPwd(value.substring("ENC@".length()));}// 不需要解密的值直接返回return value;}}}public class JasyptUtils {public static SimpleStringPBEConfig cryptOr() {SimpleStringPBEConfig config = new SimpleStringPBEConfig();config.setPassword(JasptConstant.Password);config.setAlgorithm(StandardPBEByteEncryptor.DEFAULT_ALGORITHM);config.setKeyObtentionIterations("1000");config.setPoolSize("1");config.setProviderName("SunJCE");config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");config.setStringOutputType("base64");return config;}
//加密public static String encryptPwd(String value) {PooledPBEStringEncryptor encryptOr = new PooledPBEStringEncryptor();encryptOr.setConfig(cryptOr());String result = encryptOr.encrypt(value);return result;}
//解密public static String decyptPwd(String value) {PooledPBEStringEncryptor encryptOr = new PooledPBEStringEncryptor();encryptOr.setConfig(cryptOr());String result = encryptOr.decrypt(value);    return result;}

Mysql数据库账号密码加密相关推荐

  1. mysql数据库表添加加密密码_数据库账号密码加密详解及实例

    数据库账号密码加密详解及实例 数据库中经常有对数据库账号密码的加密,但是碰到一个问题,在使用UserService对密码进行加密的时候,spring security 也是需要进行同步配置的,因为sp ...

  2. SSM数据库账号密码加密

    使用SSM框架开发WEB项目时,数据库的账号密码一般会写在dbconfig.properties里,为了做到保护版权等效果,要对数据库账号密码进行加密,一共有分为三步. 一.创建DESUtil类 提供 ...

  3. 【Jasypt】Java 轻量级加密工具实现代码数据库账号密码加密

    前言 对很多人来说,项目中习惯会把数据库的账号密码直接用明文写在配置文件中,其实这样并不是特别好,虽然是方便查看,但是也不太安全.所以这篇文章主要是一款轻量级加密工具的使用介绍. 参考资料 Jasyp ...

  4. mysql数据库druid密码加密_Druid数据库密码加密

    背景 数据库密码直接写在配置中,对安全来说,是一个很大的挑战.Druid为此提供一种数据库密码加密的手段ConfigFilter. druid版本为1.1.18. 加密 1.项目中引入依赖 com.a ...

  5. 加载程序中数据库账号密码加密策略wallet_04

    文章目录 1. 切换到oracle用户 2. 创建wallet目录 3. 创建wallet 账户 4. 查看创建的wallet 5. 创建wallet目录 6. 查看证书 7. 把证书拷贝到客户端 8 ...

  6. mysql数据库druid密码加密_SpringBoot使用Druid数据库密码加密

    java -cp druid-1.0.28.jar com.alibaba.druid.filter.config.ConfigTools pcds123123456 2.使用 Durid 的工具类 ...

  7. 阿里云mysql用户名和密码是什么_阿里云服务器数据库账号密码是什么

    阿里云服务器数据库账号密码是什么,阿里云虚拟机数据库. 在阿里云ecs云服务器上部署数据库后,在平常的操作中可能会遇到些问题,可以先做个大致的了解: 如果您想看更多的在ecs上的数据库的相关操作,请前 ...

  8. 如何查看服务器账户密码信息文件,如何查询服务器的数据库账号密码

    如何查询服务器的数据库账号密码 内容精选 换一换 华为云提供两种连接方式通过SQL Server客户端连接实例:非SSL连接和SSL连接.其中,SSL连接实现了数据加密功能,具有更高的安全性.准备弹性 ...

  9. 怎么查到mysql的账号密码是什么_怎么查到mysql的账号密码是什么?

    查到方法:首先以管理员身份运行一个cmd窗口,输入"mysql -uroot -p",回车入数据库:然后使用"select host,user,password from ...

最新文章

  1. python——random.sample()的用法
  2. 如何在Linux下安装Docker
  3. WEB站点使用企业库安全性异常解决办法
  4. TCP负载均衡地址转换(锐捷设备)
  5. Neo4j简单的样例
  6. MySQL_前缀索引_建立
  7. win7内部版本7601副本不是正版
  8. 整数翻转Python解法
  9. 现代软件工程 结对编程 (II) 电梯调度
  10. VMware运行Ubuntu 三种网络连接方式:bridge、NAT、Host-Only的区别
  11. matlab练习程序(共生矩阵)
  12. python中while true的用法_python入门:while循环里面True和False的作用,真和假
  13. 计算机学号生成准考证号,设计考场编排,生成准考证号
  14. 字节跳动笔试题-前端(互娱)
  15. python爬取b站up主粉丝信息_使用Python爬取B站数据
  16. 5G时代的Android App开发入门与项目实战
  17. 色彩空间与色彩深度。详细分析相机中sRGB/AdobeRGB、RAW/JPG到底该怎么选
  18. ArangoDB AQL中的图形绘制遍历
  19. Python初级学习教程—从入门开始学习(函数、组合数据类型、文件操作、异常、模块)
  20. MySQL自带的性能压力测试工具mysqlslap详解

热门文章

  1. 稀土掘金这个平台有什么问题?
  2. 理解代数式的本质提高学生数学素养
  3. eclipse for Java还是java ee
  4. 4|无线传感器网络与应用|无线传感器网络原理及方法-许毅版|第3章:无线传感器网络通信-3.1协议结构 3.2物理层|青岛科技大学|课堂笔记
  5. 电信互联网卡套餐一览表2020_行业自律丨易搜集团受邀参加2020中国互联网法治大会,签署电信和互联网行业网络数据安全自律公约...
  6. 49天精通Java,第18天,Java代理类详解
  7. Consider defining a bean of type
  8. 如何在jieba分词中加自定义词典_R-数据挖掘 | jiebaR 分词
  9. 神经网络和卷积神经网络,常用的卷积神经网络
  10. AI快剪-全自动视频剪辑软件