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