如何在Jenkins配置文件中编码API令牌?


3

我正在使用测试Jenkins 1.644设置,我创建了一个名为的用户admin

Web界面表示用户API令牌是aa13769c03d0ef0618380ae6940b5e3a

用户配置文件users/admin/config.xml包含以下内容。

<jenkins.security.ApiTokenProperty>
  <apiToken>JvzeeQeyI/p/93m3+Cmb1k0j+js7voeJSFbef77eBRy8ItQH5BJoIsYgXTelX7sC</apiToken>
</jenkins.security.ApiTokenProperty>

有谁知道使用什么编码/解码算法从一个值到另一个值?


1
它看起来像它的HMACSHA384(48Bytes)然后Base64编码(64bytes),但秘密密钥是未知的所以我无法对其进行反向工程以确定。可能在程序中嵌入了一个值,该值在散列期间被填充并连接到消息上,因此实际上它只是一个软件知道如何创建的散列。因此,HMAC散列比传统SHA更安全。en.wikipedia.org/wiki/Hash-based_message_authentication_code这个网站有一些有趣的转换器:hash.online-convert.com/sha384-generator
Frank Thomas

感谢猜测它可能是一个48字节值的转换,然后是Base64编码。使用的字符和字符串长度是有意义的。但是由于操作是可逆的,因此在该过程中不会有散列(即:我可以在2个不同的设置上使用相同的配置文件,Jenkins可以计算出实际的API令牌)。
marcv81 2016年

看看代码,我认为API令牌::::MAGIC::::与使用密钥加密的AES128 连接,我无法恢复,但在所有Jenkins实例中都是相同的。
marcv81 2016年

Jenkins主目录包含一个文件调用secret.key。那可能是秘密密钥。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.