加密解密
在项目中有些敏感的配置属性,如数据库用户名、密码等,都应该进行加密存储
需要下载jdk的JCE,下载之后放到JAVA_HOME下的lib中
对称加密
spring:
datasource:
username: root
password: '{cipher}851a6effab6619f43135a714061f4602be0251b73b56b0451a7e268c880daea3'
加解密端点
- 加密:
curl $CONFIG_URL/encrypt-d想要加密的内容
- 解密:
curl $CONFIG_URL/decrypt-d 想要解密的密文
非对称加密
使用keytool来创建一个Key Store
>keytool -genkeypair -help
keytool -genkeypair [OPTION]...
生成密钥对
选项:
-alias <alias> 要处理的条目的别名
-keyalg <keyalg> 密钥算法名称
-keysize <keysize> 密钥位大小
-sigalg <sigalg> 签名算法名称
-destalias <destalias> 目标别名
-dname <dname> 唯一判别名
-startdate <startdate> 证书有效期开始日期/时间
-ext <value> X.509 扩展
-validity <valDays> 有效天数
-keypass <arg> 密钥口令
-keystore <keystore> 密钥库名称,指定密钥库的路径及名称,若密钥库不存在则创建。若不指定则默认在操作系统的用户目录下生成一个".keystore"的文件
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型,如果不指定,默认是JKS
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-protected 通过受保护的机制的口令
使用 "keytool -help" 获取所有可用命令
keytool -genkeypair -alias mytestkey -keyalg RSA -keystore server.jks -keypass keypass -storepass storepass
将生成的jks文件复制到classpath下
在bootstrap.yml中添加配置
encrypt:
key-store:
location: classpath:server.jks
alias: mytestkey
password: storepass
secret: keypass
https://zhhll.icu/2022/框架/微服务/springcloud/配置中心/springCloudConfig/4.配置属性加密解密/
网友评论