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

快速建立平台网站开发设计建站流程最佳线上网站制作模板

快速建立平台网站开发设计建站流程,最佳线上网站制作模板,个人工作室可以做哪些项目,大连高新园区住建局官网我们的配置文件中,其实包含着大量与安全相关的敏感信息,例如数据库的账号密码、一些服务的密钥等。而这些信息一旦泄露,对于企业的重要数据资产是相当危险的。 所以对于这些配置文件中存在的敏感信息进行加密,是每个成熟开发团队都…

我们的配置文件中,其实包含着大量与安全相关的敏感信息,例如数据库的账号密码、一些服务的密钥等。而这些信息一旦泄露,对于企业的重要数据资产是相当危险的。 所以对于这些配置文件中存在的敏感信息进行加密,是每个成熟开发团队都一定会去的事。

下面通过使用Jasypt来加密配置信息:https://github.com/ulisesbocchio/jasypt-spring-boot

Jasypt是一个Java库,可以方便地对Spring Boot应用中的敏感配置信息进行加密。

一.Springboot项目的配置信息加密: 

1. 添加依赖

首先在项目的pom.xml中添加Jasypt依赖:

<dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.5</version> <!-- 使用最新版本 -->
</dependency>

然后再插件中加入:

<plugin><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-maven-plugin</artifactId><version>3.0.3</version>
</plugin>

2. 生成加密值

使用Jasypt工具类生成加密后的值:

import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;public class JasyptEncryptor {public static void main(String[] args) {StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();encryptor.setPassword("mySecretKey123!"); // 设置加密密钥encryptor.setAlgorithm("PBEWithMD5AndDES");// 加密用户名String encryptedUsername = encryptor.encrypt("admin");System.out.println("Encrypted username: ENC(" + encryptedUsername + ")");// 加密密码String encryptedPassword = encryptor.encrypt("secret123");System.out.println("Encrypted password: ENC(" + encryptedPassword + ")");}
}

假设输出:

Encrypted username: ENC(4B5A6C8D9E0F1G2H3I4J5K6L7M8N9O0P)
Encrypted password: ENC(1A2B3C4D5E6F7G8H9I0J1K2L3M4N5O6P)

3. 配置加密值

将加密后的值放入application.properties 。

application.propertiesapplication.yml中,使用ENC()包裹加密后的值:

# 未加密的普通配置
app.name=MyApp# 加密的数据库配置
db.url=jdbc:mysql://localhost:3306/mydb
db.username=ENC(4B5A6C8D9E0F1G2H3I4J5K6L7M8N9O0P)
db.password=ENC(1A2B3C4D5E6F7G8H9I0J1K2L3M4N5O6P)

Spring会自动解密这些值,可以像使用普通配置一样使用它们:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;@Component
public class DatabaseConfig {@Value("${db.url}")private String url;@Value("${db.username}")private String username;@Value("${db.password}")private String password;public void printConfig() {System.out.println("Database URL: " + url);System.out.println("Database Username: " + username); // 自动解密System.out.println("Database Password: " + password); // 自动解密}
}

4. 配置加密密钥

有几种方式配置加密密钥:

方式1:直接写在配置文件中

jasypt.encryptor.password=your-secret-key

方式2:通过环境变量

jasypt.encryptor.password=${JASYPT_ENCRYPTOR_PASSWORD:}

然后在启动时传入环境变量:

export JASYPT_ENCRYPTOR_PASSWORD=your-secret-key
java -jar your-app.jar

方式3:通过命令行参数(推荐)

java -jar your-app.jar --jasypt.encryptor.password=your-secret-key

二.SpringCloud项目分布式配置中心的加密解密:

Spring Cloud Config提供了对属性进行加密解密的功能,以保护配置文件中的信息安全。

{cipher} 前缀是Spring Cloud Config Server的加密标识,后面跟随的是 ​AES加密后的十六进制字符串(64位字符)

比如下面的例子:

spring.datasource.username=eleven
spring.datasource.password={cipher}dba6505baa81d78bd08799d8d4429de499bd4c2053c05f029e7cfbf143695f5b

但是我们需要进行以下操作:

配置加密密钥:
# application.properties
encrypt.key=my-secret-key-123  # 必须与加密时使用的密钥一致
server.port=8888
测试解密:
curl -X POST http://localhost:8888/decrypt \-d "dba6505baa81d78bd08799d8d4429de499bd4c2053c05f029e7cfbf143695f5b"

下面我们演示如何加密密码:

创建Config Server:
<!-- pom.xml 添加依赖 -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-config-server</artifactId>
</dependency>
启动Config Server:
@SpringBootApplication
@EnableConfigServer
public class ConfigServerApplication {public static void main(String[] args) {SpringApplication.run(ConfigServerApplication.class, args);}
}
 启动Config Server后加密新密码:
curl -X POST http://localhost:8888/encrypt -d "你的新密码"
# 返回类似:dba6505baa81d78bd08799d8d4429de499bd4c2053c05f029e7cfbf143695f5b
将加密结果存入配置
spring.datasource.password={cipher}新生成的加密字符串
通过环境变量传入密钥:
# 启动Config Server时
export ENCRYPT_KEY=my-secret-key-123
java -jar config-server.jar
或在启动命令中指定:
java -jar config-server.jar \--encrypt.key=my-secret-key-123


文章转载自:

http://Xs7APyLj.Lgtcg.cn
http://UzSerzJL.Lgtcg.cn
http://404Sky9f.Lgtcg.cn
http://XYgpM4Bh.Lgtcg.cn
http://SKdnXRAg.Lgtcg.cn
http://7LnPJ1bA.Lgtcg.cn
http://0rhB3bFF.Lgtcg.cn
http://xKP7gqDa.Lgtcg.cn
http://cVDNw70g.Lgtcg.cn
http://vcAtgX7K.Lgtcg.cn
http://Xw6tCYez.Lgtcg.cn
http://iEPGM3gE.Lgtcg.cn
http://BqwOGLqW.Lgtcg.cn
http://rk2iya8e.Lgtcg.cn
http://0y7IHKkW.Lgtcg.cn
http://hy7FhUNl.Lgtcg.cn
http://Bd7rAOnh.Lgtcg.cn
http://T7mA0EXf.Lgtcg.cn
http://V7AAw1YS.Lgtcg.cn
http://Sb514hT7.Lgtcg.cn
http://7TlV58vb.Lgtcg.cn
http://Emguaq6x.Lgtcg.cn
http://EcFzq71T.Lgtcg.cn
http://FvjLSlMQ.Lgtcg.cn
http://zeWfPfoG.Lgtcg.cn
http://FHOAKSCd.Lgtcg.cn
http://xdwMgcgj.Lgtcg.cn
http://q5w7Mpog.Lgtcg.cn
http://8zJ3i3Pm.Lgtcg.cn
http://5ZMVMRDI.Lgtcg.cn
http://www.dtcms.com/wzjs/612304.html

相关文章:

  • 设计软件基础课程学什么鱼头seo推广
  • 电商网站设计与制作网站中加入百度地图
  • 网站图片分辨率建设银行公户网站
  • 咸阳学校网站建设哪家专业河北pc端网站开发
  • 学院网站设计方案做网站大公司有哪些
  • 网页设计与制作做网站华为商城的网站建设
  • 网站建设费 科目设计师每天都上的网站
  • WordPress生成电商小程序seo优化技术厂家
  • 中职学校网站建设方案做网站推广的公司发展前景
  • 互动案例的网站做网站怎么插音频
  • 亦庄网站开发网址转app
  • 网站做行业认证好处怎么做晒鱼的网站
  • 假网站怎么做南京百姓网免费发布信息网
  • 没有公众号建微信网站网络营销推广的三板斧
  • 注册了网站之后怎么设计wordpress获取tag
  • 微站和网站数据同步呼伦贝尔做网站公司
  • php淘宝商城网站源码全国网站建设大赛
  • 淘客二级域名网站免费建设卡盟网站模板
  • 网站布局的好坏的几个要素wordpress负载均衡上传附件
  • 网站指向ip列表是什么建网站团队
  • 网站建设签收单郑州网站排名公司
  • 网站开发项目成本分析之合理性郑州网站建设hnqfu
  • 营销型网站建传统网站怎么换成WordPress
  • 如何建设淘宝客网站wordpress用户注册邮件
  • 设计网站的三个要素如何建设网页制作的网站
  • 怎么查看网站啥系统做的p2p网站建设 深圳
  • 可以做mv 的视频网站中山网站建设咨询
  • 百度权重从1提升到2的办法seo网站编辑是做什么的
  • 网站设计师职责北京12345微信公众号
  • 龙华住房与建设局网站百度新闻排行榜