检查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如何在Salesforce中查询自定义对象?   RichFaces 4中的java ExtendedDataTable:数据模型处理   java Android类层次结构和带有片段的接口   java如何在文件中保存JLabel的颜色/大小?   java编辑类中的返回值而不修改类本身?   安卓如何替换字符串java中的ï»   1.3.7.发布>1.4.1。发布| java。lang.NoSuchMethodError:org。springframework。靴子建设者SpringApplicationBuilder。展示横幅   java列表保存在模型中,而不在setter中进行设置   java如何打开一个窗口。windows中的ks文件?   Java HashMap获取值(其中大部分值)   vps的javascript Websocketurl?   使用byte buddy或某些库进行java评测   java Dom4j获取单节点文本值