我正在使用测试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令牌
—
marcv81 2016年
::::MAGIC::::
与使用密钥加密的AES128 连接,我无法恢复,但在所有Jenkins实例中都是相同的。
Jenkins主目录包含一个文件调用secret.key。那可能是秘密密钥。
—
真