设为首页 | 加入收藏

欢迎访问湖南幸运赛车开奖直播_幸运赛车开奖视频直播_幸运赛车开奖直播

幸运赛车开奖视频直播 >> gta5下载-总算把Apollo存储加密这件事搞定了

本文摘自于《Spring Cloud微服务 入门 实战与进阶》一书。

一些比较重要的装备信息,比方暗码之类的灵敏装备,咱们期望将装备加密存储,确保安全性。Apollo结构自身没有供给数据加密的功用,假如想要完成数据加密的功用有两种办法,第一种是改Apollo的源码,添加加解密的逻辑,第二种比较简单,依据第三方的结构来对数据进行解密。

jasypt-spring-boot是一个依据Spring Boot开发的结构,能够将properties中加密的内容主动解密,在Apollo中也能够借助于jasypt-spring-boot这个结构gta5下载-总算把Apollo存储加密这件事搞定了来完成数据的加解密操作。

jasypt-spring-boot GitHub地址:https://github.com/ulisesbocchio/jasypt-spring-boot

将咱们需求加密的装备通过jasypt-spring-boot供给的办法进行加密,然后将加密的内容装备在Apollo中,当项目发动的时分,jasypt-spring-boot会将Apollo加密的装备进行解密,然后让运用者获取到解密之后的内容。

创立一个新的Maven项目,参加Apollo和jasypt的依靠:

参加下面的依靠信息:

  • jasypt.encryptor.password:装备加密的Key

创立一个加密的东西类,用于加密装备gta5下载-总算把Apollo存储加密这件事搞定了:

履行main办法,能够得到如下输出:

{input=0JK4mrGjPUxkB4XuqEv2YQ==, password=yinjihaunkey}

input便是hello加密之后的内容,将input的值仿制存储到Apollo中,存储的格isis局需求依照必定的规矩才行:

test.input = ENC(0JK4mrGjPUxkB4XuqEv2YQ==)

需求将加密的内容用ENC包起来,这样jasypt才会去解密这个值。

运用的当地能够直接依据称号注入装备,比方:

input的值便是解密之后的值,运用者不需求关怀解密逻辑,jasypt结构在内部处理好了。

jasypt整合Apollo也是有一些缺乏的当地,现在我只发现了下面几个问题:

  • 在装备中心修正值后,项目中的值不会改写
  • 注入Config目标获取的值无法解密

上面罗列的2个问题,跟jasypt的完成办法是有联系的,意味着这种加密的办法或许只合适数据库暗码之类的,发动时是能够解密的,而且仅仅用一次,假如是某些比较中心的事务装备需求加密的话,jasypt是支撑不了的,无法做到实时更新。下章节我会解说怎么修正Apollo的源码来处理这2个问题。

扩展Apollo支撑存储加解gta5下载-总算把Apollo存储加密这件事搞定了密

前面章节中给咱们介绍了怎么运用jasypt为Apollo中的装备进行加解密操作,根本的需求是能够完成的,但仍是有一些缺乏的当地gta5下载-总算把Apollo存储加密这件事搞定了。

jasypt仅仅在发动的时分将Spring中带有ENC(xx)这种格局的装备进行解密,当装备发作修正时无法更新。因为Apollo结构自身没有这种对装备加解密的功用,假如咱们想完成加解密,而且能够动态的更新,就需求对Apollo的源码做一些修正来满意需求。

对源码修正还需求从头打包,笔者在这边介绍一个比较简单的完成办法,便是创立一个跟Apollo结构中如出一辙的类名进行掩盖,这样也不必替换已经在运用的客户端。

假如装备中心存储的内容是加密的,意味着Apollo客户端从装备中心拉取下来的装备也是加密之gta5下载-总算把Apollo存储加密这件事搞定了后的,咱们需求在装备拉取下来之后就对装备进行解密,然后再走后面的流程,比方绑定到Spring中。在这个事务点进行切入之后,装备中心加密的内容就能够主动变成解密后的明文,对运用者通明。

通过剖析Apollo的源码,笔者找到了一个最合适的切入点来做这件工作,这个类便是com.ctrip.framework.apollo.internals.DefaultConfig,DefaultConfig是Coonfig接口的完成类,装备的初始化和获取都会通过DefaultConfig的处理。

在DefaultConfig内部有一个更新装备的办法updateConfig,能够在这个办法中对加密的数据进行解密处理:

这边运用了AES来解密,也便是说装备中心的加密内容也需求用相同的加密算法进行加密,至于格局的话仍是用的ENC(xx)这种格局来标识这便是一个加密的装备内容。解密之后将解密的明文内容从头赋值到Properties 中,其他的流程不变。

创立一个加密测验类,加密装备内容,仿制存储到Apollo中

输出内容如下:

Ke4LIPGOp3jCwbIHtmhmBA==

存储到Apollo中需求用ENC将加密内容gta5下载-总算把Apollo存储加密这件事搞定了包起来,如下:

test.input = ENC(Ke4LIPGOp3jCwbIHtmhmBA==)

仍是用之前的代码进行测验,Config获取和Spring注入的办法如能够成功的获取到解密的数据,而且在装备中心修正后也能实时推送到客户端成功解密。

本文摘自于《Spring Cloud微服务 入门 实战与进阶》一书。



上一条      下一条
返回顶部