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

网站模板有哪些内容全屏背景网站

网站模板有哪些内容,全屏背景网站,宁波哪里做网站的,整装公司排名前十强作者 | 王磊来源 | Java中文社群#xff08;ID#xff1a;javacn666#xff09;转载请联系授权#xff08;微信ID#xff1a;GG_Stone#xff09;为什么要加密#xff1f;现在的开发习惯#xff0c;无论是公司的项目还是个人的项目#xff0c;都会选择将源码上传到 Gi… 作者 | 王磊来源 | Java中文社群IDjavacn666转载请联系授权微信IDGG_Stone为什么要加密现在的开发习惯无论是公司的项目还是个人的项目都会选择将源码上传到 Git 服务器GitHub、Gitee 或是自建服务器但只要将源码提交到公网服务器就会存在源码泄漏的风险而数据库配置信息作为源码的一部分一旦出现源码泄漏那么数据库中的所有数据都会公之于众其产生的不良后果无法预期比如某某酒店的信息。于是为了避免这种问题的产生我们至少要对数据库的密码进行加密操作这样即使得到了源码也不会造成数据的泄露也算保住了最后一块遮羞布。如何加密对于 Java 项目来说要想快速实现数据库的加密最简单可行的方案就是使用阿里巴巴提供的 Druid 来实现加密。什么是DruidDruid中文译为“德鲁伊”是阿里巴巴开源的一款 Java 语言中最好的数据库连接池。Druid 提供了强大的监控和扩展功能当然也包含了数据库的加密功能。Druid 开源地址https://github.com/alibaba/druid/Druid可以做什么Druid 可以监控数据库访问性能Druid 内置提供了一个功能强大的 StatFilter 插件能够详细统计 SQL 的执行性能这对于线上分析数据库访问性能有帮助。替换数据库连接池 DBCP 和 C3P0Druid 提供了一个高效、功能强大、可扩展性好的数据库连接池。数据库密码加密直接把数据库密码写在配置文件中这是不好的行为容易导致安全问题。DruidDruiver 和 DruidDataSource 都支持 PasswordCallback。SQL 执行日志Druid 提供了不同的 LogFilter能够支持 Common-Logging、Log4j 和 JdkLog你可以按需要选择相应的 LogFilter监控你应用的数据库访问情况。扩展 JDBC如果你要对 JDBC 层有编程的需求可以通过 Druid 提供的 Filter-Chain 机制很方便编写 JDBC 层的扩展插件。对于本文来说我们重点来看它的第 3 个特性也就是使用 Druid 来实现数据库密码加密。加密执行流程在没有进行密码加密之前项目的交互流程是这样的在使用了密码加密之后项目的交互流程就变成了这样使用Druid实现加密本示例运行环境Spring Boot 2.4.3 MySQL 5.7 Java 1.8 Idea 2020.1.31.添加Druid依赖Maven 项目dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.2.5/version /dependency Gradle 项目compile com.alibaba:druid-spring-boot-starter:1.2.5 获取 Druid 最新版本https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter2.生成密文Druid 添加完成之后就可以借助 Druid 中提供的 ConfigTools 类来加密密码了实现代码如下import com.alibaba.druid.filter.config.ConfigTools;class MyTests {public static void main(String[] args) throws Exception {// 需要加密的明文命名String password  youPassword; // 【注意这里要改为你自己的密码】// 调用 druid 生成私钥、公钥、密文ConfigTools.main(new String[]{password});} } 以上代码执行的结果如下privateKey:MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEApOjcMWSDzJiKVGmtcBBoQPtM9tVW2H2cnS6xZK7NrbzQXYWLQD2zefIrrx9vMvqRIHEqkmAHTuUcUXHgCxu0cwIDAQABAkAlqo5ItdWo0Jqf5zdXJlg5p2yP4HCiqCYyfKzF2s9KEmgWZJWTctZDsgQ0iYUohORR59IJ4nabhel1x5/INpAiEA6jwSyFqMUPOh1XlrzNFekRthOQ5n4ALPovULayO0CIQC0O7JM9sIqtgjCGvypk6vbuRKY9m5W2rSRXapGm3wIgRHul3jAjIDPrF/f1HaAFLY0Yws7Ebyp8/yCRWF7iA0CIALbe20q8FMcHPeI4zPWCIsHCpkmb3hEkjAOOKhGIT8DAiAqiUuz92NqKeyjmOfons1ka65EzVwA3NDhZ6IQcnuig publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKTo3DFkg8yYilRprXAQaED7TPbVVth9nJ0usWSuza280F2Fi0A9s3nyK68fbzL6kSBxKpJgB07lHFFx4AsbtHMCAwEAAQ password:IMgKm27bOHok3/5aDL4jGBoVVZkpicbbM6pIXQppi3dI7h3jngSAqhqwqYnfuYpyVJ0kq9xWWnHtd6sAWnQ从上述结果可以看出使用 ConfigTools 类会生成 3 部分的内容privateKey私钥暂时不会用到用于密码的加密publicKey公钥用于密码的解密password加密之后的密码。PS要实现数据库的加密主要使用的是 publicKey公钥和 password密文这就把明文转换成密文了。3.添加配置完成了以上操作之后只需要将上一步生成的公钥和密文添加到项目的配置文件 application.yml或application.xml中就实现了加密操作了具体配置信息如下spring:# MySQL 配置datasource:driver-class-name: com.mysql.cj.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSourcedruid:url: jdbc:mysql://127.0.0.1:3306/testdb?serverTimezoneAsia/ShanghaicharacterEncodingUTF-8useSSLfalseusername: rootpassword: IMgKm27bOHok3/5aDL4jGBoVVZkpicbbM6pIXQppi3dI7h3jngSAqhqwqYnfuYpyVJ0kq9xWWnHtd6sAWnQ# encrypt configfilters: configconnect-properties:config.decrypt: trueconfig.decrypt.key: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKTo3DFkg8yYilRprXAQaED7TPbVVth9nJ0usWSuza280F2Fi0A9s3nyK68fbzL6kSBxKpJgB07lHFFx4AsbtHMCAwEAAQ 其中 password 对应的是上一步生成的 password密文而 config.decrypt.key 对应的是上一步生成的 publicKey公钥如下图所示这里提供一个原始的配置文件以便和加密后的配置文件进行比对4.注意事项-插着钥匙的锁经过前面 3 步的配置之后我们的程序就可以正常运行了但这远没有结束在第 3 步配置时我们将密文和公钥都写入配置文件这就会造成当有人拿到密文和公钥之后就可以使用 Druid 将加密的密码还原出来了这就好比一把插着钥匙的锁是极不安全的。因此我们正确的使用姿势是将公钥找一个安全的地方保存起来每次在项目启动时动态的将公钥设置到项目中这样就可以有效的保证密码的安全了。正确的配置文件接下来我们将 Spring Boot 的公钥设置为配置项在项目运行时再替换为具体的值最终的安全配置信息如下spring:# MySQL 配置datasource:driver-class-name: com.mysql.cj.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSourcedruid:url: jdbc:mysql://127.0.0.1:3306/testdb?serverTimezoneAsia/ShanghaicharacterEncodingUTF-8useSSLfalseusername: rootpassword: IMgKm27bOHok3/5aDL4jGBoVVZkpicbbM6pIXQppi3dI7h3jngSAqhqwqYnfuYpyVJ0kq9xWWnHtd6sAWnQ# encrypt configfilters: configconnect-properties:config.decrypt: trueconfig.decrypt.key: ${spring.datasource.druid.publickey} 可以看出公钥被修改成“${spring.datasource.druid.publickey}”了这就相当于使用占位符先把坑给占上等项目启动时再更换上具体的值。PS“spring.datasource.druid.publickey”并非是固定不可变的 key此 key 值用户可自行定义。开发环境替换公钥开发环境只需要在 Idea 的启动参数中配置公钥的值即可如下图所示当我们输入正确的公钥值时程序可以正常运行当输入一个错误的公钥值时就会提示解码失败如下图所示生产环境替换公钥生产环境在启动 jar 包时只需要动态设置公钥的值即可参考以下命令java -jar xxx.jar --spring.datasource.druid.publickey你的公钥Druid运行原理经过上述步骤之后我们就完成 MySQL 密码的加密了这样当 Spring Boot 项目启动时Druid 的拦截器会使用密文和公钥将密码还原成真实的密码以供项目使用当然这一切都无需人工干预无需编写任何代码Druid 已经帮我封装好了我们只需要通过以上配置即可。什么你想知道 Druid 是如何通过密文和公钥还原出真实的密码的没问题满足你其实 ConfigTools 类中已经提供了相应实现代码如下// 密文 String password  VwH1mu2IUpqjfKTdgSikiZgJTi3Y5zFIFRfxYnH1UqHzm1K8TIHnMaV3TErBaGsVEaGV0e63pb0Ys3Wdm7Kg; // 公钥 String publicKey  MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALWIEp19IM04sBvQXnEOH9gFNFdL5TFGSEhORgHj4MnfTfBSNaOoSgCaM8BOpjiHmwuEb7LpvmXI1x/ymUvNzECAwEAAQ; // 还原成真实的密码 String result  ConfigTools.decrypt(publicKey, password); System.out.println(最终结果  result); 总结本文我们使用阿里巴巴开源的 Druid 实现了 MySQL 的密码加密Druid 的加密过程非常方便无需编写任何代码只需要添加 Druid 依赖再通过 Druid 的工具类生成密文最后将密文配置到 application.yml 文件即可。项目在运行时会通过拦截器将密文转换成真正的密码从而实现了 MySQL 密码的加密和解码的过程。最后原创不易如果觉得本文对你有帮助请点个赞再走吧。如果可以请随手将它分享到你的朋友圈让更多需要的人知道谢谢你。
http://www.pierceye.com/news/373042/

相关文章:

  • 做微信公众号第三网站整站外包优化公司
  • 济南协会网站设计团队网站后台建设编辑器
  • 行业查询网站拖式网站建设
  • 网站设计文献网站开发与维护岗位说明书
  • 公司制作网站东莞南城房价
  • 智能建站系统seo网站优化方案
  • 南宁网站建设找建站通成都seo推广
  • 网站做镜像的有什么用建设银行流水网站
  • 湖北网站定制开发价格表宣传片制作协议
  • 开网站要多少钱自己怎样做网站
  • 建设网站的教程免费的wordpress分类在哪设置
  • 电子书网站 跟我学做家常菜800网站建设与维护 教学大纲
  • 河南省住房城乡建设主管部门网站wordpress还有人在用吗
  • 好口碑关键词优化沈阳企业关键词优化
  • 外汇自动跟单网站开发wordpress支持中文
  • 南宁网站建设推广教育类网站框架
  • 定制网站建设服务公司摄影设计师招聘
  • 地图 添加到网站观点网站
  • 给分管领导网站建设情况汇报怎么写企业网站的发展历史
  • 佛山营销网站建设费用app制作器下载软件
  • 如何将优酷视频上传到自己网站万能网
  • 域名销售网站wordpress 数据库配置文件
  • 广州营销型网站建设怎么样做网站必须要认证吗
  • 网站开发主要内容免费商城平台
  • 青岛建站方案海兴县网站建设公司
  • 网站文案框架兰州网页制作公司网站
  • 专业网站有哪些平台wordpress那个版本
  • 网站建设按钮详情页设计图
  • 杭州公司注册代理中介深圳关键词优化软件
  • 乐清网站制作公司电话免费做初中试卷的网站