范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

SpringBoot如何保护配置文件中的敏感信息

  说明
  使用过SpringBoot配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些。
  打开 application.properties 或application.yml ,比如 MySql登陆密码,Redis登陆密码以及第三方的密钥等等一览无余,这里介绍一个加解密组件,提高一些属性配置的安全性。
  jasypt由一个国外大神写了一个springboot下的工具包,用来加密配置文件中的信息。
  GitHub Demo地址
  https://github.com/jeikerxiao/spring-boot2/tree/master/spring-boot-encrypt   数据用户名和数据库密码加密为例1. 引入包
  查看最新版本可以到:
  https://github.com/ulisesbocchio/jasypt-spring-boot            com.github.ulisesbocchio         jasypt-spring-boot-starter         2.1.0  2. 配置加/解的密码# jasypt加密的密匙 jasypt:   encryptor:     password: Y6M9fAJQdU7jNp5MW 3. 测试用例中生成加密后的秘钥@RunWith(SpringRunner.class) @SpringBootTest public class DatabaseTest {      @Autowired     private StringEncryptor encryptor;      @Test     public void getPass() {         String url = encryptor.encrypt("jdbc:mysql://localhost:3306/mydb?autoReconnect=true&serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8");         String name = encryptor.encrypt("root");         String password = encryptor.encrypt("123456");         System.out.println("database url: " + url);         System.out.println("database name: " + name);         System.out.println("database password: " + password);         Assert.assertTrue(url.length() > 0);         Assert.assertTrue(name.length() > 0);         Assert.assertTrue(password.length() > 0);     } }
  下面是输出加密字符串:  database url: 6Ut7iADnHS18cManoFJuNRQ5QEDfcho/F96SOhsHZdXlHYCa5PSrz6rk48I9eHB7qPp5AxDFBk9xi0I1hi6BJ0DSPYA9443gBAk5JDUxDufjUKsdh6knZJLNELmFJzYrDvCu4S0x22MYdZqJDLbyDUU2JcoezCvs156vmsPgU4A= database name: fmai72yGYKGlP6vTtX77EQ== database password: GPMG7FGV+EA9iGkC27u67A== 4. 将加密后的字符串替换原明文
  applicatioin.yml  server:   port: 8080 spring:   # 数据库相关配置   datasource:     driver-class-name: com.mysql.cj.jdbc.Driver     # 这里加上后缀用来防止mysql乱码,serverTimezone=GMT%2b8设置时区     url: ENC(h20YiPrvNnuuTGjlrE1RVpudMuIQAS6ZPSVo1SPiYVyLen7/TWI5rXVRkStA3MDcoVHQCmLa70wYU6Qo8wwtnsmaXa5jykD3MNhAp5SGJxHsTG5u7tflPdnNmOufyhdsYPxBGWAgibYs9R7yBfrvtwBTRbe096APd3bnG3++Yro=)     username: ENC(sT6BztXbJEa71eg3pPGYMQ==)     password: ENC(MpSZFJ9ftq+3+VUANZjr0Q==)   jpa:     hibernate:       ddl-auto: update     show-sql: true   # 返回的api接口的配置,全局有效   jackson:    # 如果某一个字段为null,就不再返回这个字段     default-property-inclusion: non_null     date-format: yyyy-MM-dd HH:mm:ss     serialization:       write-dates-as-timestamps: false     time-zone: GMT+8 # jasypt加密的密匙 jasypt:   encryptor:     password: Y6M9fAJQdU7jNp5MW
  注意: 上面的   ENC()   是固定写法.  附言部署时配置salt(盐)值
  为了防止salt(盐)泄露,反解出密码.可以在项目部署的时候使用命令传入salt(盐)值:  java -jar xxx.jar  -Djasypt.encryptor.password=Y6M9fAJQdU7jNp5MW
  或者在服务器的环境变量里配置,进一步提高安全性。学习资料:Java进阶视频资源
  打开 /etc/profile 文件 vim /etc/profile
  在profile文件末尾插入salt(盐)变量  export JASYPT_PASSWORD = Y6M9fAJQdU7jNp5MW
  编译,使配置文件生效  source /etc/profile
  运行  java -jar -Djasypt.encryptor.password=${JASYPT_PASSWORD} xxx.jar来源:blog.csdn.net/jeikerxiao/article/details/96480136

哈利波特手游队友或者自己的下饭时刻?玩家连跪原因找到了哈利波特手游的卡牌对战因为实战过程千变万化,有一定随机性和未知的可能,所以非常有挑战性,自然也充满了紧张感和乐趣,尤其是双排,4人对战谁也不知道会发生什么事,尤其是一些玩家突然失误传奇3诺玛遗址的注意事项诺玛统领可以说是传奇3众多高级boss中的压轴boss,不论是寻找这个boss的路程还是击杀难度上面来说都是非常难的,有一点需要玩家记住,就是诺玛统领是在开服七天之后才会开启,想要原神资讯八重神子上线时间确定,2。5版本第一个卡池?不出意外,八重神子在2。5版本第一个卡池。消息来自内鬼舅舅大佬以及路人,可靠性很高。首先是Dmbee说了我确认八重神子将在2。5版本第一个卡池,这不是预测,而是报告,后来阿伟大佬又幻塔是如何构建捏脸系统的?说实话,当得知幻塔一开始的宣传是对标原神时,我多少觉得完美世界有些异想天开。尽管原神的口碑毁誉参半,但成绩却是实打实的。原神在商业上的成功,足以傲视群雄,也让市场看到了此类游戏的潜游戏心理学孩子为什么不肯放下手机?他玩起游戏,就什么都不去顾及,不能中断,因为要维系某种东西。游戏的玩家性分类学此处的游戏特指电子游戏,电脑游戏,手机游戏,而非传统的游戏。在开始论述之前,我们应该理清一个分类,那就2021S联赛年度总决赛1月2日小组赛第三个比赛日快报s联赛超话2021S联赛年度总决赛1月2日小组赛第三个比赛日快报AGQQ飞车20eStarGaming第一轮竞速赛第一局飞跃神州,开局AG。狮子更快,eStar。Ani进行后追时出镜匿光小队上架两天无人问津,只因玩家太精明,张飞专属装备突袭文可儿游戏说原创在元旦节期间,王者荣耀上架了几款新皮肤,有两款新皮肤和一款皮肤返场,而比较意外的是,镜的皮肤在上架两天之后销量并不高。而其原因却并不是因为这款皮肤不好,也不是因为玩曾经国产单机顶点的秦殇,殇的是秦,殇也是整个国产单机对于经历过2000年国产单机游戏黄金时代的玩家来说,那段日子算得上既美好又坎坷。美好是因为在当时,国人第一次有了走出国外的游戏,不用再每天与天书一样的外语做斗争说坎坷,又是因为家人自由度极高的JK异世界大冒险推荐这款真正的大作RPG游戏魔法少女苍蓝星(魔法少女)游戏概述这是工房制作组出品的日式大型RPG游戏该制作组曾经做过极品RPG永生之物实力属于顶尖水准这作属于超级爆款大作,发售当天新诛仙手游新职刺客万剑你玩了吗?网友这颜值太顶了都说强不强是一时的事,帅不帅是一辈子的事,所以很多玩家在选择游戏职业的时候,颜值是第一考虑的点。而最近新诛仙手游全新版本万剑归宗的新职业万剑,让这些看脸的人觉得又可以了!之前就有很Rookie转会很明智!IG新阵容让老粉心寒,Theshy接班人不见了前言作为LPL首个S赛冠军,IG在18年迎来了战队巅峰期,然而却在19年MSI之后逐渐走了下坡路。比赛中开始各种控制变量式地换人,而场外也是节奏不断。最终宁王淡出赛场,阿水,宝蓝,
鱿鱼游戏黄仁昊是历届冠军,为何会穷到交不起房租?跟弟弟有关鱿鱼游戏中的黄仁昊,扮演的是面具领头人的身份,作为游戏的其中一位观赏者,黄仁昊比任何人都要严厉冷酷,决不允许游戏出现任何的差错,即便是弟弟的出现,黄仁昊也会毫不留情地对他开枪,到底鱿鱼游戏碰糖游戏,曹尚佑为何着急淘汰队友?跟成奇勋有关曹尚佑在鱿鱼游戏中算是最聪明的一位参赛者,有着高学历的他,在面对各种游戏之前都会冷静分析,而且曹尚佑的判断非常准确,跟他在一起的队友确实太幸运,可有个问题倒是让人疑惑不解,按理说跟鱿鱼游戏被选中不意外,老头与成奇勋其实是父子?有3个铁证成奇勋是鱿鱼游戏中最幸运的男子,不仅得到了主办者的青睐,甚至还成了游戏的赢家,获得了456亿的奖金,然而这一切当真是碰巧吗?老头跟成奇勋之间到底是什么关系,为何成奇勋的善心能轻松获鱿鱼游戏曹尚佑是最大的威胁,老头干嘛不把成奇勋送到最后?鱿鱼游戏中的成奇勋之所以能走到最后,是因为他的命中有贵人,如果不是阿里在关键时刻拉了他一把,说不定在第一局木头人中,成奇勋就已经被淘汰掉了。还有最关键的弹珠游戏,如果不是老头的故意鱿鱼游戏地铁站的神秘男人是谁,他是怎么知道欠债人资料的?每一个来参加鱿鱼游戏的选手,都是通过地铁上跟陌生男子的小游戏进来的,他们就像是被选中一般,神秘男子断定此人肯定会来参加游戏,这才选择利用小钱勾引,可地铁里的神秘男人到底是谁,他又是鱿鱼游戏黄仁昊为何会成为负责人?对老头态度暗示其目的不单纯整部鱿鱼游戏只有短短的9集,以至于很多细节都没交代清楚,比如黄仁昊,他是以往参赛的冠军,为何赢了比赛没有回归到现实生活中,反而会成为游戏的负责人?他留下来的目的是什么,难道当真因为鱿鱼游戏面具人是怎么被选中的?他们跟参赛者一样,都是游戏人看过鱿鱼游戏的观众肯定都很好奇,除了456位参赛者之外,那些穿着红衣服的面具人又是怎么来的?神秘组织的招聘宗旨又是什么?其实红衣人跟那些参赛者一样,都是VIP眼中的马,也就是所谓的鱿鱼游戏456人失踪,为何警察和家人不找他们?原因有两点剧中猫头鹰老头举办的鱿鱼游戏已经多年了,而且每一次参赛的人数都非常多,就好比最新一期,就有456人参加,虽说参加游戏的时间只有7天,但好歹是456个活生生的人凭空消失了,为何警察和鱿鱼游戏令人头皮发麻的细节,装尸体的礼物盒背后含义太讽刺鱿鱼游戏中有很多令人头皮发麻的细节,富有童年趣味的游戏场景,却在淘汰者的鲜血侵染下变得惊悚不已,还有要人性命的123木头人等等,其中最可怕的莫过于装尸体的礼物盒,但凡礼物盒一出场,孔刘有多狡猾?没档期也要拍鱿鱼游戏,只为扇老板耳光鱿鱼游戏之所以那么火,就是因为每一集的剧情都很紧凑,能一眼抓住观众的眼球,关键还有颜值派的加盟,比如地铁中的神秘男子,就是由孔刘扮演的,他的戏份不多,而且总是出现在地铁上,而他也是鱿鱼游戏主办方并非一个人,3个细节证明老头并非终极BOSS很多人都认为老头是决定鱿鱼游戏的幕后大BOSS,就连成奇勋都没想到,自己一直以来最信任的人,竟是个十恶不赦的大恶魔,他想杀了老头为其他参赛者报仇,可惜没等到那个机会,老头先一步去世