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

网站中英文切换前端dede网站建设教程云盘

网站中英文切换前端,dede网站建设教程云盘,规划电子商务网站,美食网站建设实施方案在实践中#xff0c;项目的某些配置信息是需要进行加密处理的#xff0c;以减少敏感信息泄露的风险。比如#xff0c;在使用Druid时#xff0c;就可以基于它提供的公私钥加密方式对数据库的密码进行加密。但更多时候#xff0c;比如Redis密码、MQ密码等敏感信息#xff0… 在实践中项目的某些配置信息是需要进行加密处理的以减少敏感信息泄露的风险。比如在使用Druid时就可以基于它提供的公私钥加密方式对数据库的密码进行加密。但更多时候比如Redis密码、MQ密码等敏感信息也需要进行加密此时就没那么方便了。本篇文章给大家介绍一款Java类库Jasypt同时基于Spring Boot项目来演示一下如何对配置文件信息进行加密。一个简单的SpringBoot项目 我们先来创建一个简单的Spring Boot项目构建一个加密数据运用的场景。无论通过Idea或官网等方式先创建一个Spring Boot项目核心依赖为dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId /dependency !--    为了方便通常会引入Lombok依赖    -- dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId /dependency创建一个配置文件类ConfigPropertiesData Component public class ConfigProperties {Value(${conf.url})private String url;Value(${conf.password})private String password;}配置文件中的配置属性注入到该类以供后续使用。创建一个Controller类用来测试验证是否能够正常运行RestController RequestMapping(/) public class ConfigController {Resourceprivate ConfigProperties configProperties;RequestMappingpublic void print(){System.out.println(configProperties.getUrl());System.out.println(configProperties.getPassword());} }对应ConfigProperties类application.properties中配置如下conf.url127.0.0.1 conf.passwordadmin123此时启动项目访问Controller能够正常打印出配置信息说明程序可以正常运行。但配置文件中直接明文展示了password项如果别人看到该配置文件就可能导致密码的泄露。基于Jasypt的加密 针对上述情况通常我们会对敏感信息进行加密避免明文密码信息暴露提升安全等级。加密的基本思路是配置文件中存储加密内容在解析配置文件注入时进行解密。但如果拿到项目源码知道加密算法和秘钥肯定是可以解密的。这里的加密只是多一层安全防护但并不是万能的。下面看看如何基于Jasypt来进行加密处理。集成步骤 下面基于上述Spring Boot项目进行改造升级。环境准备不同版本的Jasypt使用方法有所不同这里基于3.0.4版本、JDK8、Spring Boot 2.5.5来进行演示。在使用之前首先检查一下JDK8的JRE中是否安装了不限长度的JCE版本否则在执行加密操作时会抛出解密失败的异常。进入$JAVA_HOME/jre/lib/security目录查看是否包含local_policy.jar和US_export_policy.jar两个jar包。如果不包含则通过Oracle官网进行下载下载地址https://www.oracle.com/java/technologies/javase-jce8-downloads.html。下载文件为jce_policy-8.zip文件内包含三个文件README.txt local_policy.jar US_export_policy.jar查看$JAVA_HOME/jre/lib/security目录下是否有这两个jar包文件如果没有则复制进去如果有可考虑覆盖。引入依赖在Spring Boot中集成Jasypt比较简单直接引入如下依赖即可dependencygroupIdcom.github.ulisesbocchio/groupIdartifactIdjasypt-spring-boot-starter/artifactIdversion3.0.4/version /dependency此时Jasypt组件自动配置便已经生效只需要对需要加密的数据进行处理了。为了方便对密码进行加密还可以在pom.xml中的build元素中引入对应的plugin这个后面会用到plugingroupIdcom.github.ulisesbocchio/groupIdartifactIdjasypt-maven-plugin/artifactIdversion3.0.4/version /plugin至此所有的准备工作已经完成。内容加密内容加密有多种方式这里挑选两种方式进行介绍。方式一单元测试类生成密文构建如下单元测试类使用默认实例化的StringEncryptor对密码进行加密SpringBootTest class SpringBootJasyptApplicationTests {Autowiredprivate StringEncryptor stringEncryptor;Testvoid contextLoads() {String qwerty1234  stringEncryptor.encrypt(admin123);System.out.println(qwerty1234);} }其中”admin123“便是要加密的内容。执行上述程序便可打印加密后的内容。这种形式加密的内容全部采用默认值。方式二通过Maven插件生成密文在上面已经引入了Jasypt的Maven插件可通过对应的命令进行生成密码。第一步在配置文件中添加加密的密码jasypt.encryptor.passwordafx11然后对配置文件中需要加密的数据进行改造在数据前添加”DEC(“在数据尾部加上)修改完如下conf.passwordDEC(admin123)这里添加的DEC()是告诉插件此部分内容需要进行加密处理。注意这里关键字是DEC。第二步执行Maven命令对上述数据进行加密处理在命令执行以下命令mvn jasypt:encrypt -Djasypt.encryptor.passwordafx11此时再看配置文件中的conf.password数据已经变为jasypt.encryptor.passwordafx11 conf.url127.0.0.1 conf.passwordENC(209eBdF3jsV2f8kDjs4NOCzgBxnVgETlR5q2KfhYo5DW2jqvLknv0TndEkXOXm0)注意原来的DEC变成了ENC原来的明文密码变成了加密的密文。此时如果想查看明文执行以下命令即可mvn jasypt:decrypt -Djasypt.encryptor.passwordafx11该命令不会修改配置文件中的密文为明文只会在控制台进行明文结果的输出。jasypt.encryptor.passwordafx11 conf.url127.0.0.1 conf.passwordDEC(admin123)经过上述操作所有改造步骤已经完成只需启动系统进行验证即可。密码的传递方式完成上述步骤直接启动系统访问对应的请求会发现已经能够成功打印出密码原文了。上述实例中我们将加密的密码放在了application.properties文件中这样并不安全如果查看代码就知道如何解密了。通常还可以采用另外一种形式来传递参数在启动命令中传输密码。比如java -jar jasypt-spring-boot-demo-0.0.1-SNAPSHOT.jar --jasypt.encryptor.passwordpassword这样密码便不用存储在代码当中了一定程度上增加了安全性。当然也可以通过环境变量来进行传递这样即便开发人员也无法获得生产的密码。小结 关于Jasypt的使用及与Spring Boot的集成就讲这么多更多内容也可参考官方文档说明。如果你的项目中还存在很多明文存储的密码真的有必要考虑使用类似的框架进行加密处理了。示例源码地址https://github.com/secbr/springboot-all/tree/master/springboot-jasypt官方源码地址https://github.com/ulisesbocchio/jasypt-spring-boot往期推荐MyBatis 批量插入数据的 3 种方法40 个 SpringBoot 常用注解让生产力爆表聊聊Spring事务失效的12种场景太坑了再见 Spring Task这个定时任务框架真香
http://www.yutouwan.com/news/186001/

相关文章:

  • 制作网站多少钱十大暗网搜索引擎
  • 服装公司网站规划建设制作一个app软件
  • 网站排名降级的原因有哪些天门网站建设设计
  • 沧州网站建设专业定制可以做免费推广的网站吗
  • 做网站容易学吗WordPress是静态么
  • 东铁匠营网站建设WordPress如何清空评论
  • 新浪网站开发语言企业微信公众号注册平台官网
  • 龙岩招聘求职网站有哪些上海搬家公司哪家好
  • 网站开发设计招聘网页开发代码
  • 学习html5的网站newedge wordpress
  • 文件传输协议登录网站怎么建企业自己的网站吗
  • 百度云网站空间建设差差软件下载免费
  • 网站设计什么价位做预约的网站
  • 在什么网站可以做推广网站建设作用 名词解释
  • 制作学校网站软件工程课程设计
  • 网站描述关键词做游戏网站的需求分析
  • 做网站是买服务器还是买cdn360seo关键词优化
  • 北京php网站制作网站域名的作用是什么意思
  • 企业网站建设制作wordpress 主题缩略图
  • 一个网站如何做推广东莞 塑胶 网站建设
  • 网站链接是什么注册资金
  • 宏重钢结构东莞网站建设网站代优化
  • 良庆网站建设软件开发app制作公司有哪些
  • 广州市企业网站建设怎么样大连网站建设方案维护
  • 南京城乡建设网站wordpress简约主题下载
  • 做网站需要切图吗seo服务指什么意思
  • 做网站公司商丘邢台企业网站建设公司
  • 做影视网站会侵权犯法吗网站导航栏最多可以做几个
  • 镇平建设局网站公司制作网站价格表
  • 蓝色大气网站模板如何在百度推广自己的产品