jenkins密码加密,转义$ {}个字符

时间:2016-06-16 09:39:15

标签: encryption jenkins groovy escaping special-characters

我正在尝试使用以下groovy脚本加密字符串${PASSWD}。使用\来转义$和\来代替{或}

import hudson.util.Secret

def secret = Secret.fromString("\$\\{PASSWD\\}")
println(secret.getEncryptedValue())

def decrypt = Secret.fromString("/WaEf5KeDpbhnjW+hBmV3kmpmQbwoTFh2oI1yFSuUf0=")
println(decrypt.getPlainText())

我得到以下输出:

/WaEf5KeDpbhnjW+hBmV3kmpmQbwoTFh2oI1yFSuUf0=
/WaEf5KeDpbhnjW+hBmV3kmpmQbwoTFh2oI1yFSuUf0=

但是,所需的输出应该是

/WaEf5KeDpbhnjW+hBmV3kmpmQbwoTFh2oI1yFSuUf0=
${PASSWD}

似乎我没有正确使用转义字符。如何将${PASSWD}作为字符串传递?

2 个答案:

答案 0 :(得分:2)

只需使用单引号

def secret = Secret.fromString('${PASSWD}')

答案 1 :(得分:0)

这取决于您要在何处进行逃生,这非常有用: https://gist.github.com/Faheetah/e11bd0315c34ed32e681616e41279ef4

要使用秘密存储,我需要使用6次反斜杠来获得1个反斜杠,最终我需要在sed命令中使用该反斜杠来转义正斜杠。