Spring Cloud Config Encryption API最后会忽略特殊字符

时间:2016-02-26 11:25:54

标签: java spring encryption spring-cloud

我们使用Spring云配置将应用程序配置外部化。我们还使用Encryption API在明文密码进入yaml属性文件之前对其进行加密。

我正在努力加密下游系统的密码,最后有特殊的性能。不知怎的,云配置加密API已经忽略了它。当您使用解密API解密密码时,您将获得纯文本,但最后没有特殊字符。

我使用curl来调用API -

curl 10.102.82.1:11901/encrypt -d AXIzFDH4XZA=  

由于某种原因,纯文本中间的特殊字符工作正常,但如果你在最后有它然后忽略它。可能这个密码已经被哈希了,但我仍然很想知道如何处理这个问题。

2 个答案:

答案 0 :(得分:4)

设置一个显式的Content-Type:text / plain,以确保当有特殊字符时curl正确编码数据

curl -H "Content-Type: text/plain" 10.102.82.1:11901/encrypt -d AXIzFDH4XZA=

这是在云配置文档中指定的,在页面上查找提示 - http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_encryption_and_decryption

答案 1 :(得分:1)

我遇到了'}'在密码中,绕过它的唯一方法是在密码前添加{plain},如下所示:

export PASSWORD=$(curl -X POST --data-urlencode "{plain}adfadf%273}*+” http://username:password@localhost:8888/encrypt)

curl http://username:password@localhost:8888/decrypt -d {cipher}$PASSWORD