当前位置: 首页 > news >正文

大良o2o网站建设怎么用视频做网站背景

大良o2o网站建设,怎么用视频做网站背景,宠物网站页面设计理念,西安直播网站开发一. 背景 当我们将项目部署到服务器上时#xff0c;一般会在jar包的同级目录下加上application.yml配置文件#xff0c;这样可以在不重新换包的情况下修改配置。 一般会将数据库连接#xff0c;Redis连接等放到配置文件中。 例如配置数据库连接#xff1a; spring:serv…一. 背景 当我们将项目部署到服务器上时一般会在jar包的同级目录下加上application.yml配置文件这样可以在不重新换包的情况下修改配置。 一般会将数据库连接Redis连接等放到配置文件中。 例如配置数据库连接 spring:servlet:multipart:max-file-size: 10MB # 文件大小限制max-request-size: 100MB # 请求大小限制datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/test?useUnicodetruecharacterEncodingutf-8serverTimezoneAsia/Shanghaiusername: rootpassword: 123456这种方式存在安全隐患如果配置文件泄露就会造成数据库密码泄露。 所以需要将配置文件中数据库密码等敏感数据加密然后在使用的时候解密后再使用。 推荐使用第三种方式。 二. 方法介绍 有三种方法 1. 解密方法嵌入到业务逻辑代码中 例如我可以在service或者正常的业务代码中去加密后再使用。 但是这种和业务耦合度高不推荐。 2. 使用jasypt 2.1 第一步pom引入依赖 dependencygroupIdcom.github.ulisesbocchio/groupIdartifactIdjasypt-spring-boot-starter/artifactIdversion2.1.2/version /dependency2.2 第二步application.yml中增加jasypt配置 该算法加解密的盐值算法不需要我们自己实现该第三方库已经实现了。我们仅需要配置这个盐值即可。 # 如果密文加盐需要配置盐值 jasypt:encryptor:password: ueiej8e8r2.3 第三步application.yml中密文替代明文。 配置文件里将加密后得到的密文用ENC(密文)方式配置即可。 数据的加密可以自己实现工具类来加密或者一些在线网站提供jasypt的加解密然后将加密的密码替换明文密码。 password: ENC(UBHpSHxjL2F8ZiNTJUciZw)到此就全部结束了。项目启动的时候程序会自动去解密并注入到实际的springApplication中。 优缺点 优点是业务代码不需要任何改动。 缺点是把jasypt的盐放到配置文件中那实际上你的加密数据也跟裸奔一样了别人一样可以用这个jasypt解密得到你的数据库密码等加密数据。 3. 使用自定义加解密并自动装配 3.1 第一步确定加解密规则编写工具类 我们可以自定义加解密算法来实现数据的加解密这里采用AES算法。工具类的代码省略。 3.2 第二步实现EnvironmentPostProcessor Spring Boot没有为加密属性值提供任何内置支持。 EnvironmentPostProcessor 接口允许你在应用程序启动前操作 Environment可以用来修改Spring Environment 中包含的值。实现接口并在接口里遍历所有的配置项将指定的配置项解密后重新写入Environment。 示例 Configuration public class DecryptEnvironmentPostProcessor implements EnvironmentPostProcessor {Overridepublic void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {Properties props new Properties(); // 临时存储需要替换的配置// 假设加密密码前缀为 ENC(后缀为 )MutablePropertySources propertySources environment.getPropertySources();for (PropertySource? propertySource : propertySources) {if (propertySource instanceof EnumerablePropertySource) {EnumerablePropertySource? enumerablePropertySource (EnumerablePropertySource?) propertySource;String[] propertyNames enumerablePropertySource.getPropertyNames();// 遍历所有配置key:valuefor (String propertyName : propertyNames) {String propertyVal environment.getProperty(propertyName);// 根据自己写的规则来解析那些配置是需要解密的if (propertyVal ! null propertyVal.startsWith(ENC() propertyVal.endsWith())) {// 解析得到加密的数据String encryptedValue propertyVal.substring(4, propertyVal.length() - 1);// 调用自定义工具类解密String decryptedValue AESUtil.decryptEcbMode(encryptedValue);// 保存需要替换的配置props.put(propertyName, decryptedValue);}}}}// 添加解密后的属性到环境中if (!props.isEmpty()) {PropertiesPropertySource pps new PropertiesPropertySource(decryptedProperties, props);environment.getPropertySources().addFirst(pps);}} }3.3 自动装配 在resources/META-INF/spring.factories中注册EnvironmentPostProcessor。 org.springframework.boot.env.EnvironmentPostProcessor\ your.package.DecryptEnvironmentPostProcessor这里把自己实现的.DecryptEnvironmentPostProcesso的全路径放进去即可。 没有META-INF/spring.factories文件的直接建好目录新增这个文件就行。 3.4 配置文件密文替换明文 使用自定义的工具类将密码加密得到密文。用密文替换配置中的密文。 例如 spring: datasource: password: ENC(你的加密密码)注意事项 你可以写死你的加密的配置项然后在postProcessEnvironme()方法里找到对应的配置项解密。或者你可以将加密的所有数据都用ENC加密的数据表示然后在postProcessEnvironme方法里匹配后解密即可。当然这里的编写规则你可以自己定义只要能匹配出来即可。 例如我的配置如下 spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/test?useUnicodetruecharacterEncodingutf-8serverTimezoneAsia/Shanghaiusername: rootpassword: ENC(UBHpSHxjL2F8ZiNTJUciZw)其中数据库的密码就是AES算法解密后的结果。 4. 总结 建议用第三种方式因为这种加密算法可以自定义并且不需要把加解密的秘钥放到配置文件里即便有人拿到配置文件也无法得到真实的密码更加的安全。 而且第三种方式对业务代码没有侵入也不需要特定引入第三方库和配置其他东西。
http://www.zqtcl.cn/news/409420/

相关文章:

  • 谈谈设计和建设网站体会wordpress header在哪
  • 360免费建站怎么进不去域名托管
  • 做网站视频存储网站建设有云端吗
  • 建网站如何上传南通 网站优化
  • 青海学会网站建设公司果汁网站模板
  • 10_10_网站建站怎么做网站链接支付
  • 九台网站甘肃网站优化
  • phpcms 网站源码建设银行科技中心网站首页
  • 营销型网站建设php源码无锡设计网站公司
  • 在线制作简历的网站绍兴seo全网营销
  • 个人做网站接装修活哪个网站好长沙企业网站建设分公司
  • 青岛网站制作辰星辰中国万网icp网站备案专题
  • 做淘宝相关网站上海网站建设做物流一
  • 服装配件网站建设 中企动力静态网站 后台
  • 做网站较好的框架网站建设的定位是什么
  • 如何保护自己的网站桂林医院网站建设
  • 产品品牌策划方案佛山网站优化美姿姿seo
  • 北京城建一建设发展有限公司网站大连在哪个省的什么位置
  • 北京知名网站建设公司排名学校诗歌网站建设
  • 个人做网站接装修活哪个网站好上海造价信息网官网
  • 网页上做网会员网站备案怎么写oa报表网站开发
  • 郑州服装网站建设网站的层级
  • 东莞建设网站制作怎么建立信息网站平台
  • 网站建设的公司服务手机上做ppt的软件
  • 体育网站模版爱站网
  • 建设部网站最新消息浏览器网站大全免费
  • 网站建设 选中企动力邯郸哪有做网站的公司
  • 个人网站cms系统网站排名下降了怎么办
  • 2o18江苏建设网站施工员模试卷哈尔滨app开发
  • 网站后台管理系统论文湖州交通网站集约化建设项目