我们使用Spring云配置将应用程序配置外部化。我们还使用Encryption API在明文密码进入yaml属性文件之前对其进行加密。
我正在努力加密下游系统的密码,最后有特殊的性能。不知怎的,云配置加密API已经忽略了它。当您使用解密API解密密码时,您将获得纯文本,但最后没有特殊字符。
我使用curl来调用API -
curl 10.102.82.1:11901/encrypt -d AXIzFDH4XZA=
由于某种原因,纯文本中间的特殊字符工作正常,但如果你在最后有它然后忽略它。可能这个密码已经被哈希了,但我仍然很想知道如何处理这个问题。
答案 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