博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring cloud config 属性加解密
阅读量:2385 次
发布时间:2019-05-10

本文共 2710 字,大约阅读时间需要 9 分钟。

首先需要(Java Cryptography Extension (JCE))的支持,下载路径:

在jdk的安装目录下/jre/lib/security,做文件替换

在config server的配置里加入

encrypt:  key: 1112

加密需要key

然后启动项目,在命令行执行curl

curl -X POST http://127.0.0.1:8888/encrypt -d mysecret

要加密的信息放最后,运行出来的结果就是加密后的字符串

7de875ef75b01957a512240c1863106a84b3344aadfa5aec2b2e4cd75478f703

需要解密的话,运行命令:

 

curl -X POST http://127.0.0.1:8888/decrypt -d 7de875ef75b01957a512240c1863106a84b3344aadfa5aec2b2e4cd75478f703

 

mysecret 使用加密加密到应用程序中: application.properties
spring.datasource.username: dbuserspring.datasource.password: {cipher}FKSAJDFGYOS8F7GLHAKERGFHLSAJ

application.yml

spring:  datasource:    username: dbuser    password: '{cipher}FKSAJDFGYOS8F7GLHAKERGFHLSAJ'

请注意其中的差别

而客户端正常使用即可。

 

依赖:

org.springframework.boot
spring-boot-starter-security

,可能暴露的问题:

{    "timestamp": 1545212081503,    "status": 401,    "error": "Unauthorized",    "message": "Full authentication is required to access this resource",    "path": "/encrypt/status"}

没有权限,

问题原因:

security:  basic:    enabled: true #默认值是true  user:    name: user    password: 123

解决办法:

enabled=false

 

以上为对称的加解密,以下讲解非对称加解密:

非对称选择在安全性方面是优越的,但是使用对称密钥往往更方便,因为它只是配置的一个属性值。

要创建一个密钥库进行测试

keytool -genkeypair -alias mytestkey -keyalg RSA \  -dname "CN=Web Server,OU=Unit,O=Organization,L=City,S=State,C=US" \  -keypass changeme -keystore server.jks -storepass letmein

在windows系统如果执行失败,将命令中的 \ 去掉,此为linux系统中的换行符;

如果对此命令有兴趣,可参考以下

-alias 
要处理的条目的别名 -keyalg
密钥算法名称 -keysize
密钥位大小 -sigalg
签名算法名称 -destalias
目标别名 -dname
唯一判别名 -startdate
证书有效期开始日期/时间 -ext
X.509 扩展 -validity
有效天数 -keypass
密钥口令 -keystore
密钥库名称 -storepass
密钥库口令 -storetype
密钥库类型 -providername
提供方名称 -providerclass
提供方类名 -providerarg
提供方参数 -providerpath
提供方类路径 -v 详细输出 -protected 通过受保护的机制的口令

 

运行后会生成server.jks文件,

server.jks文件放在类路径(例如)中,然后在您的application.yml中配置服务器:

encrypt:  keyStore:    location: classpath:/server.jks    password: letmein    alias: mytestkey    secret: changeme

 

启动项目,运行命令

curl -X POST http://127.0.0.1:8888/encrypt -d 密文

AQArkCDzEKT2rJU9U+7msxdFvNqZeerM0q0zd7RJ9tyejlvzdo0eDIU6PeU693OszLI8TJ0aNPiZPkWeMJMVdO+kL8lo3EdNjQoYNpGd4sayIzhB71+0NwMKX9xqDzkZ8wz4UW8Q5qXDw1Dsj5VlmOjLD5kh+z21JNGT+EeK2ScWY2KCiy/vtUXm2ajOF5vpBWXINgvnb4+BToy8xyNbDqAORi1YehPXBdw1gEnH9c0w0uhl2dQU1MUT4+YcuaHCFOsUKJnPvxh/6cZFlvsAw1o5cT3f/fvLj3+i5VGrtx0Nu0Gn+OizrjvZ5dugS1Swjtdo+VQ5T5ONT2JxWeVBGjOW+Sxn71cJvzvDQZVkNTp9UeSVdudL23a2PGTU8fm4m94=

 

剩下的和上面一样

 

posted @
2018-12-19 11:16 阅读(
...) 评论(
...)

转载地址:http://kzjab.baihongyu.com/

你可能感兴趣的文章
轻量级服务器选择
查看>>
补丁的制作和使用:diff和patch
查看>>
pkg-config指南
查看>>
不用任何变量,实现strlen函数
查看>>
关于C语言的位移操作
查看>>
由“输出从1到1000的数”想到的
查看>>
键盘上各个按键的英文名
查看>>
Linux系统文本模式下的截屏技巧
查看>>
php中$_Get $_POST $_REQUEST区别
查看>>
PHP - 解决中文乱码问题
查看>>
PHP学习-面向对象
查看>>
js页面跳转整理
查看>>
在64位Win7操作系统中安装Microsoft Access Engine的解决方案
查看>>
30类CSS选择器
查看>>
微信支付的使用介绍
查看>>
PHP单例模式应用详解
查看>>
冒号课堂§5.2:数据类型
查看>>
博客搬家
查看>>
冒号课堂§6.2:平台语言
查看>>
《关于信息系统组织方式的一个提案》的评论与反评
查看>>