检查keystone生成的fernet令牌

fernet_inspector的Python项目详细描述


检查keystone fernet令牌内容的工具,与 生成它的服务器。然后可以解包令牌的内容 并使用适当的标记格式映射。这个工具被设计成 并且不保证令牌有效载荷的格式一致。

安装

$ pip install fernet-inspector

用法

>>> fernet-inspector -h
usage: fernet-inspector [-h][-k KEY_REPOSITORY] token

Inspect the contents of a Keystone Fernet token from the host it was issued
from.

positional arguments:
  token                 token to decrypt

optional arguments:
  -h, --help            show this help message and exit
  -k KEY_REPOSITORY, --key-repository KEY_REPOSITORY
                        location of Fernet key repository.

您应该能够解密Fernet令牌并获得结果负载:

>>> fernet-inspector <token-to-decrypt>
[2, '\xb0>\xd9\x14\x03kF\xb3\x94\xc9@A\x9e\x12\xda\x0f', 1, 'Z\xce\xd8U5ZH\xf6\xae\xd8n@;\x9a\x98`', 1442338543.238753, ['\xf0\xa8\x03T\x07\xbaJk\x8c;G\x9cG\xab\xdfX']]

此工具仅用于提供有关令牌的信息。不是故意的 假设特定的令牌格式,或断言 数据打包的顺序。

警告

任何特定令牌格式的顺序和内容可能会发生更改 任何时候

现在您可以根据 有效负载,这是标记version在这种情况下,第一个元素是 2,这意味着我们正在处理 keystone.token.providers.fernet.token_formatter.py:TokenFormatter

处理审核ID

审核ID可以用 以下内容:

>>> import base64
>>> base64.urlsafe_b64encode('\xf0\xa8\x03T\x07\xbaJk\x8c;G\x9cG\xab\xdfX')'8KgDVAe6SmuMOecR6vfWA=='

处理uuid

打包到令牌中的大多数唯一标识符都是从^{tt6}转换而来的$ 它们各自的UUID.bytes表示这将导致 总的象征。令牌的UUID.bytes表示形式可以转换 返回UUID.hex,并显示以下信息:

>>> import uuid
>>> uuid.UUID(bytes='\xb0>\xd9\x14\x03kF\xb3\x94\xc9@A\x9e\x12\xda\x0f').hex
'b03ed914036b46b394c940419e12da0f'

处理时间戳

令牌的过期将转换为整数,因为它在 代币。整数可以转换回原始的datetime 对象如下:

>>> import datetime
>>> datetime.datetime.utcfromtimestamp(1442338543.238753)
datetime.datetime(2015, 9, 15, 17, 35, 43, 238753)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java附加两个数组   java如何在Extjs的不同页面中使用相同的存储   java Jung,大顶点的布局重叠,图形出现在奇怪的位置   java如何在Android中通过画布绘制圆?   java验证库设计模式选择   java研磨机未知标记“timedTests”   java Android领域子类实例方法   java使用resteasy/jaxrs从请求负载接收两种类型的数据   缓冲策略Java缓冲策略有时不能正确绘制   java跟踪棋子   密度无关像素如何在java中锐化图像缩略图?   java如何在MongoDB更新查询中编写(或)更新   java A*寻路游戏系统退出问题   java在安卓中读取xml的最佳方式是什么?   通过反射调用的方法的java抑制警告   安卓 java。语言错误:信号11(SIGSEGV),代码10(?),故障地址006e006f   java lombok 1.18.2使用DexBuilderForDebug抛出TransformClasses   java JOptionPane CD对话框按钮?   java只返回json中的一些值,而不是完整实体对象   java包不存在错误,请稍后重试