在micro service体系中,有了config server,我们可以把配置存放在git、svn、数据库等,普通的web项目也基本上是把配置存放在配置文件中。如果我们把大量的配置信息都放在配置文件中是会有安全隐患的,那么如何消除这个隐患呢?最直接的方式就是把配置信息中的一些敏感信息(比如数据库密码、中间件密码)加密,然后程序在获取这些配置的时候解密,就可以达到目的。这个时候,

Jasypt is a java library which allows the developer to add basic encryption capabilities to his/her projects with minimum effort, and without the need of having deep knowledge on how cryptography works.

High-security, standards-based encryption techniques, both for unidirectional and bidirectional encryption. Encrypt passwords, texts, numbers, binaries...

Transparent integration with Hibernate.

Suitable for integration into Spring-based applications and also transparently integrable with Spring Security.

Integrated capabilities for encrypting the configuration of applications (i.e. datasources).

Specific features for high-performance encryption in multi-processor/multi-core systems.

Open API for use with any JCE provider.

意思其实就是可以把Jasypt这个Java库当成是一个黑盒子,无需深入了解里面怎么运作的,可以拿来直接用(当然,作为码农我们还是要去一探究竟的,个人兴趣自己看吧)。现在基本上项目都集成spring boot了,因此我们可以使用

1. 引入pom包

com.github.ulisesbocchio

jasypt-spring-boot-starter

2.0.0

2. 找到maven仓库中的 jasypt-1.9.2.jar(路径是:.m2\repository\org\jasypt\jasypt\1.9.2)

3. 调用jasypt-1.9.2.jar包中一个main方法:org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI ,源码参考:

 View Code

然后执行一下语句:

java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="test" password=salt algorithm=PBEWithMD5AndDES

-- input参数:你想要加密的密码

-- password参数:jasypt用来加密你的密码的密码

结果如下图,途中的output就是加密后的密文了。

4. 修改配置文件,把配置文件中要加密的字段改为:ENC(密文)

system:

mysql:

url: xxx.xxx.xx.xx

username: username

password: ENC(qh8kixDUkvm1DIJrpLFtzw==)

jasypt:

encryptor:

password: salt

以上就可以达到目的。

mysql 密码 enc_配置文件的属性ENC加密相关推荐

  1. mysql 密码文件改成密文_需求:实现数据库密码通过密文的方式存储在配置文件中 | 学步园...

    需求:实现数据库密码通过密文的方式存储在配置文件中 配置文件:evoucher.conf[可以是任意自定义格式结尾的配置文件]格式 是以  Key:Value存在的. 例如如下: # evoucher ...

  2. mysql 密码大小写_MySQL数据库加密和解密~认证登陆密码(mysql.user)和MySQL不区分大小写...

    MySQL数据库认证密码有两种方式: 1:MySQL 4.1版本之前是MySQL323加密 2:MySQL 4.1和之后的版本都是MySQLSHA1加密 还有函数:AES_ENCRYPT()加密函数和 ...

  3. docker安装mysql并挂载配置文件和修改密码

    docker安装mysql并挂载配置文件和修改密码 docker从仓库中拉取最新版的mysql镜像,如果没加标签的话,默认获取最新的版本 docker pull mysql docker pull m ...

  4. MySQL客户端对配置文件读取顺序的问题场景

    我们都知道使用MySQL客户端来访问MySQL数据库时,会以一定的顺序读取不同位置的配置文件,但在一次做测试时,发现除了按照顺序读取默认的配置文件路径外,MySQL还有额外的读取配置文件的行为.如下是 ...

  5. mysql 表空间加密,MySql(8.0)基于docker部署(加密存储表空间)

    说明: MySql社区版的加密方式只支持keyring_file的方式: 目前我找到的加密只能针对表来,不能针对整个库使用. 1. 宿主机创建映射目录 正常情况下,我个人喜欢创建两个目录,一个映射配置 ...

  6. mysql变量环境配置文件_Day44 Mysql环境变量、配置文件(2)

    目录:环境变量配置及系统服务制作 设置密码 忘记密码情况 配置文件的修改 1.环境变量配置及系统服务制作 # 查看具体进程 # tasklist # tasklist | findstr mysqld ...

  7. 定期修改mysql 密码_MySQL修改账号密码方法大全

    前言: 在日常使用数据库的过程中,难免会遇到需要修改账号密码的情景,比如密码太简单需要修改.密码过期需要修改.忘记密码需要修改等.本篇文章将会介绍需要修改密码的场景及修改密码的几种方式. 1.忘记 r ...

  8. mysql密码忘了咋办,密码重置过程

    mysql密码忘了咋办,密码重置过程 步骤 1修改配置文件免密进入 2:重启mysql服务: 3:进入mysql修改密码 4:重置修改过的内容 步骤 以下为windows系统,linux系统思路也适用 ...

  9. mysql密码忘了怎么办

    mysql8.0以下版本密码忘了怎么办 思路:mysql的密码是存放在user表里面的,修改密码其实就是修改表中记录,重置的思路是是想办法不用密码进入系统,然后用数据库命令修改表user中的密码记录 ...

最新文章

  1. 手把手教你使用Gene6FTP远程管理
  2. Oracle rollup 关键字用法简介.
  3. java 桥梁模设计,Java设计模式学习篇(九)桥接设计模式
  4. 使用闭包的方式实现一个累加函数 addNum
  5. 2013 ACM区域赛长沙 K Pocket Cube hdu 4801
  6. ApkTool2.34 打包经验
  7. 几张一模一样的照片_两张一模一样的照片看起来却不一样!什么鬼?
  8. 音视频开发(11)---基于B/S模式的视频监控系统设计
  9. pytorch torch.normal
  10. 程序员的生活照,最后一个绝了!有同感吗?
  11. Linux用户环境变量及操作
  12. 计算机系统保密检查整改情况函,保密工作整改情况汇报
  13. 基于linux下的在线电子词典
  14. 经济学中VCG机制介绍与机制设计(mechanism design)
  15. 通用模块脚本使用案例:玩家与NPC对话
  16. python将多个表的数据合并到一个表
  17. vc禁止标题栏拖动窗口
  18. KNN实现0-9数字手写板识别
  19. html53列多行表格样式,教程(53):表格之美--了解布局菜单!
  20. RAB与RB的关系详解

热门文章

  1. js ajax浏览器做什么,js区分webkit核心浏览器chrome,360浏览器
  2. iOS开发系列–打造自己的“美图秀秀”(上)
  3. 10种相亲交友源码客户端存储,值得一看
  4. 把一个JAVA程序变成一个可执行文件
  5. 使用QCustomPlot,跟随鼠标动态显示线上点的值
  6. 【成长访谈】李钊:学技术于无形,论大道于无声
  7. 【Linux】USB驱动程序
  8. B树B+树的原理和操作
  9. 【Cucumber系列】Cucumber Hooks
  10. 区块链革命:我命由我不由天,是魔是仙, 我自己说了算