从jenkins配置文件中解密密码

jenkins的credentials.xml文件中存储了很多账号,但是里面的密码都是经过加密处理的,密码格式都是下面这种

{AQAAABAAAAAgQI+cpXwSulM5zcFv14L5eODWtRDiP1HBCY/zg8H3kTDE4swuJ+j5DiVg251XDjq+}

最近有个账号的密码忘记了,但是很久之前在jenkins里面配置过的,所以想通过解密的方式去获取之前的密码。

网上找资料发现,jenkins的密码是使用hudson.util.Secret.fromString("明文密码").getEncryptedValue()加密的,而解密的话就需要使用hudson.util.Secret.fromString("{XXX=}").getPlainText()进行解密
用jenkins的管理员账号登录,在系统管理列表中找到Script Console这个选项

系统管理:

将下面语句粘贴到内容框中

println(hudson.util.Secret.fromString("{AQAAABAAAAAgQI+cpXwSulM5zcFv14L5eODWtRDiP1HBCY/zg8H3kTDE4swuJ+j5DiVg251XDjq+}").getPlainText())

 

点击运行按钮,解密后的明文密码就会打印出来

jenkins版本不同,可能使用的代码行也不同,还有可能是下面这种:

println(hudson.util.Secret.decrypt("{AQAAABAAAAAgQI+cpXwSulM5zcFv14L5eODWtRDiP1HBCY/zg8H3kTDE4swuJ+j5DiVg251XDjq+}"))

参考文档:https://qastack.cn/devops/2191/how-to-decrypt-jenkins-passwords-from-credentials-xml

原文地址:https://www.cnblogs.com/deny/p/14790913.html