Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
some-tweak-to-hide-jwt-payload-values — 一个轻量级的 Python 库,用于通过基于时间戳的密钥进行 XOR 加密,来混淆 JWT 载荷值,防止用户 ID 等敏感声明以明文方式被解码。 | Kitploit
工具/GitHubGitHub/password123456/some-tweak-to-hide-jwt-payload-values
加密/解密工具身份验证学习与教育API 安全
GitHubpassword123456/some-tweak-to-hide-jwt-payload-values

some-tweak-to-hide-jwt-payload-values

一个轻量级的 Python 库,用于通过基于时间戳的密钥进行 XOR 加密,来混淆 JWT 载荷值,防止用户 ID 等敏感声明以明文方式被解码。

查看仓库

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
102年前尚未审核

隐藏JWT负载值的一些调整技巧

made-with-python Python Versions Hits

  • 一些调整方法和思路,用于保护 JWT 负载,使其解码尝试徒劳无功:通过不断改变其值,
    确保解码后的输出仍然难以理解,同时将性能开销降至最低。

什么是 JWT 令牌?

JSON Web Token(JWT,发音为“jot”)是一种紧凑且 URL 安全的方式,用于在两方之间传递 JSON 消息。它是一个定义在 RFC 7519 中的标准。该令牌是一个长字符串,由点分隔成若干部分。每个部分都是 base64 URL 编码的。

令牌包含哪些部分取决于 JWT 的类型:是 JWS(签名令牌)还是 JWE(加密令牌)。如果令牌已签名,它将包含三个部分:头部、负载和签名。如果令牌已加密,它将由五个部分组成:头部、加密密钥、初始化向量、密文(负载)和认证标签。JWT 最常见的用途可能是在 OAuth 和 OpenID Connect 流程中作为访问令牌和 ID 令牌,但它们也可以用于其他目的。

此代码片段的主要目标

此代码片段提供了一种调整视角,旨在增强 JWT 令牌解码时负载部分的安全性,因为通常存储的键在解码后会以明文形式显示。 此代码片段提供了一种调整视角,旨在增强 JWT 令牌解码时负载部分的安全性。通常,负载部分在从 JWT 令牌(base64)解码后会以明文形式显示。 主要目标是轻量加密或混淆负载值,使其含义难以辨别。目的是确保即使有人尝试解码负载值,也无法轻易做到。

userid

  • 该代码片段以存储在负载部分中的键名为“userid”作为示例。
  • 选择“userid”是因为它在验证令牌有效性(例如,确保令牌未过期)后,常被用于用户身份识别或认证目的。

尝试隐藏名为“userid”的键的值的思路如下:

加密:

  • 对时间戳进行哈希处理,然后通过按位异或操作与用户 ID 进行加密。
  • 使用对称密钥执行异或操作。
  • 结果值使用 Base64 编码。

解密:

  • 使用 Base64 解码加密数据。
  • 使用对称密钥执行异或操作进行解密。
  • 原始用户 ID 和哈希后的时间戳以明文形式显示。
  • 通过使用“|”分隔符提取用户 ID 部分,用于相关用途。

异或编码的对称密钥:

  • 此密钥可以使用各种材料。
  • 它可以是常规密码哈希中使用的盐、任意随机字符串、生成的 UUID 或任何其他合适的材料。
  • 然而,此密钥应安全地存储在数据库管理系统(DBMS)中。

以及..^^

root@kitploit:~
在示例中,键显示为 { 'userid': 'random_value' },
明显表示它是一个用户 ID。

然而,这仅用于说明目的。

实际上,通常会使用一个预先确定且不公开的名称。
例如:'a': 'changing_random_value'

备注

  • 此代码片段是为教育目的创建的,作为思路的起点,而非天生安全。
  • 它提供了比明文可见性更高的安全性,但不能保证绝对安全。

尝试篡改使用此方法生成的 JWT 令牌需要同时访问用于创建 UserID 的 JWT 密钥和异或对称密钥。

以及...

  • 如果您觉得有帮助,请点个 “星”🌟 以支持进一步的改进。

预览

root@kitploit:~
# python3 main.py

- Current Unix Timestamp: 1709160368
- Current Unix Timestamp to Human Readable: 2024-02-29 07:46:08

- userid: 23243232
- XOR Symmetric key: b'generally_user_salt_or_hash_or_random_uuid_this_value_must_be_in_dbms'
- JWT Secret key: yes_your_service_jwt_secret_key

- Encoded UserID and Timestamp: VVZcUUFTX14FOkdEUUFpEVZfTWwKEGkLUxUKawtHOkAAW1RXDGYWQAo=
- Decoded UserID and Hashed Timestamp: 23243232|e27436b7393eb6c2fb4d5e2a508a9c5c

- JWT Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0aW1lc3RhbXAiOiIyMDI0LTAyLTI5IDA3OjQ2OjA4IiwidXNlcmlkIjoiVlZaY1VVRlRYMTRGT2tkRVVVRnBFVlpmVFd3S0VHa0xVeFVLYXd0SE9rQUFXMVJYREdZV1FBbz0ifQ.bM_6cBZHdXhMZjyefr6YO5n5X51SzXjyBUEzFiBaZ7Q
- Decoded JWT: {'timestamp': '2024-02-29 07:46:08', 'userid': 'VVZcUUFTX14FOkdEUUFpEVZfTWwKEGkLUxUKawtHOkAAW1RXDGYWQAo='}


# run again
- Decoded JWT: {'timestamp': '2024-02-29 08:16:36', 'userid': 'VVZcUUFTX14FaRNAVBRpRQcORmtWRGleVUtRZlYXaBZZCgYOWGlDR10='}
- Decoded JWT: {'timestamp': '2024-02-29 08:16:51', 'userid': 'VVZcUUFTX14FZxMRVUdnEgJZEmxfRztRVUBabAsRZkdVVlJWWztGQVA='}
- Decoded JWT: {'timestamp': '2024-02-29 08:17:01', 'userid': 'VVZcUUFTX14FbxYQUkM8RVRZEmkLRWsNUBYNb1sQPREFDFYKDmYRQV4='}
- Decoded JWT: {'timestamp': '2024-02-29 08:17:09', 'userid': 'VVZcUUFTX14FbUNEVEVqEFlaTGoKQjxZBRULOlpGPUtSClALWD5GRAs='}

img

下载工具