对称加解密
1.首先要添加加解密的配置,即需要在JVM添加JCE扩展.
- 下载JCE 安装对应的java版本 :java8的版本
- \jdk1.8.0_161\jre\lib\security 路径下替换文件local_policy.jar, US_export_policy.jar
2.server端添加配置文件bootstrap.xml
- 若在application.yml添加配置,Spring Cloud Config版本的不同可能还是会出现{“description”:“No key was installed for encryption service”,“status”:“NO_KEY”}
- 启动服务,输入http://localhost:8888/encrypt/status如果返回{“status”:“OK”}则表示配置成功
encrypt:
key: spongebob #对称加密key
3.使用curl测试加密和解密
# 加密
curl -X POST http://localhost:8888/encrypt -d myname
# 解密
curl -X POST http://localhost:8888/decrypt -d b13bd23cc343caf584c5db6f34312bfb993590bf2a
4.配置文件中配置信息加密
- 在yml文件中,必须以英文半角单引号括起来加密值,前面加{cipher}
profile: '{cipher}38d04ae6719798079c4c0263fb375904c13fb2df7112ffca50ceb6a2e3063251'
- 在properties文件中, 不要加引号
profile={cipher}38d04ae6719798079c4c0263fb375904c13fb2df7112ffca50ceb6a2e3063251
非对称加解密
1.使用keytool生产证书
- keytool -genkeypair 命令帮助
-alias <alias> 要处理的条目的别名
-keyalg <keyalg> 密钥算法名称
-keysize <keysize> 密钥位大小
-sigalg <sigalg> 签名算法名称
-destalias <destalias> 目标别名
-dname <dname> 唯一判别名
-startdate <startdate> 证书有效期开始日期/时间
-ext <value> X.509 扩展
-validity <valDays> 有效天数
-keypass <arg> 密钥口令
-keystore <keystore> 密钥库名称
-storepass <arg> 密钥库口令
-storetype <storetype> 密钥库类型
-providername <providername> 提供方名称
-providerclass <providerclass> 提供方类名
-providerarg <arg> 提供方参数
-providerpath <pathlist> 提供方类路径
-v 详细输出
-protected 通过受保护的机制的口令
- 使用keytool生成证书
keytool -genkeypair -alias mytestkey -keyalg RSA -dname "CN=Web Server,OU=Unit,O=Organization,L=City,S=State,C=US" -keypass spongebob -keystore server.jks -storepass sbstore
2.将生产的证书server.jks 放到resource下
3.在server端的bootstrap.xml添加配置
encrypt:
keyStore:
location: classpath:/server.jks
password: sbstore
alias: mytestkey
secret: spongebob
4.配置文件中配置信息加密
- 同对称加密的配置方式一致