Java 原始数据膨胀异常

2023-12-01

我试图在 java 中解码 JWT 有效负载,但该有效负载被压缩/放气

"zip": "DEF"

java.util.zip.DataFormatException:标头检查不正确

private static byte[] decompress(byte[] value) throws DataFormatException {
        ByteArrayOutputStream bos = new ByteArrayOutputStream(value.length);
        Inflater decompressor = new Inflater();
        try {
          decompressor.setInput(value);
          final byte[] buf = new byte[1024];
          while (!decompressor.finished()) {
            int count = decompressor.inflate(buf);
            bos.write(buf, 0, count);
          }
        } finally {
          decompressor.end();
        }
        return bos.toByteArray();
      }




public static void main(String[] args) throws Exception {
        
        
        String payload = "7VPbjtMwEP2X4TUXO9CumjdYkFghoZVaFiHUB9eZNka-RLYTUVb5d8ZuKxW09AuQ8jL2mTPnHGeeYZLQPkM8Dgjtd-hjHEJb18EIH3sUOvaVFL4Lr6SbVMdXUNzAnIoyFTdxypjRql8iKmdhW4D02KGNSuj1uPuBMiZJ-175J_QhYVp4U7GKE2k6fTfaTmPCeAxu9BI3WT6cL4qzHZBOa2JLDAXQAH8kj8Q8av3FawJc-ltGgEvxAvEjSaV-Allh8EQijNLEB-vN280HujmoCW3K8OvHh_Wnb7CdydlOkfX3IiYSvlqxkr2mD-a5eFEGvy3j4Tq3AkIUcQzZpxk0RkypT0JKZfHedZlBuk7ZQ1YcjiGiIXh6GHqXXt9Vzh_qFGkdVFfL6ScRyNwJDbuDeTsXMJy9Zzl79GiTtuvoEgj93nmDPk8SMjqfGjoVBi1SSvdP68deeCPkkdxTMk7K0WeyFM9GmdPQhpdsWTZLEqJd_DyaXeIE_s_Imv-RnSJb_BUZS5ltZ8oNlCAtfNks2HLBOKe_eLf_80CFcHaZN1ZFXopBVXIKl8V15nqR64nXec3n3w";
       
         byte[] byt = Base64.getUrlDecoder().decode(new String(payload).getBytes("UTF-8"));
        
        byte[] b =  decompress(byt);
        String s = new String(b, StandardCharsets.UTF_8);
    }

其他一些使用其他编程语言的人能够使用这个解决这个问题,想知道我将如何在 java 中完成这个任务?

const decompressedCard = zlib.inflateRawSync(decodedPayload);
const card = JSON.parse(decompressedCard.toString());

通常压缩的有效负载是用于加密 JWT (JWE), but 智能健康卡也可以在签名令牌(JWS)中使用它。在这两种情况下,DEFLATE 格式定义为RFC1951用来。对于 Zlib (如问题底部的示例所示),您必须使用deflateRaw/inflateRaw(DEFLATE 没有任何 Zlib 或 gz 标头)。

如果出现以下情况java.util.zip.Inflater,初始化充气机

Inflater decompressor = new Inflater(true);

正在设置nowrap参数为 true 以原始模式(无标头)解压缩数据,
这等于使用inflateRaw在 Node.js 中。

(也可以看看https://docs.oracle.com/javase/7/docs/api/java/util/zip/Inflater.html)

通过此设置,问题中的代码可以正常工作,并且给定的示例数据可以扩展为 JSON。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 原始数据膨胀异常 的相关文章

  • 热重载在docker中运行的java程序

    我开发了一个java程序 应该在docker中运行 然而 我在调试docker中运行的java程序时遇到了很多痛苦 我在网上搜索 一些教程提出了像 spring dev tools 这样的工具 因为我的java程序是基于spring boo
  • 如果测试用例失败,Selenium Web 驱动程序无法关闭 Firefox 实例

    我各位 我正在使用 junit 和 selenium web 驱动程序 2 28 问题是 如果我运行成功的测试用例 Web 驱动器能够关闭 Firefox 实例 但是当测试用例失败时 Selenium Web 驱动器无法关闭 Firefox
  • JNI 不满意链接错误

    我想创建一个简单的 JNI 层 我使用Visual studio 2008创建了一个dll Win 32控制台应用程序项目类型 带有DLL作为选项 当我调用本机方法时 出现此异常 Exception occurred during even
  • 如何查找 Android 设备中的所有文件并将它们放入列表中?

    我正在寻求帮助来列出 Android 外部存储设备中的所有文件 我想查找所有文件夹 包括主文件夹的子文件夹 有办法吗 我已经做了一个基本的工作 但我仍然没有得到想要的结果 这不起作用 这是我的代码 File files array file
  • CXF Swagger2功能添加安全定义

    我想使用 org apache cxf jaxrs swagger Swagger2Feature 将安全定义添加到我的其余服务中 但是我看不到任何相关方法或任何有关如何执行此操作的资源 下面是我想使用 swagger2feature 生成
  • 在浏览器中点击应用程序时播放框架挂起

    我正在 Play 中运行一个应用程序activator run 也许 5 次中有 3 次 它会挂起 当我去http localhost 9000 它就永远坐在那里旋转 我看到很多promise timed out错误也 我应该去哪里寻找这个
  • java中删除字符串中的特殊字符?

    如何删除字符串中除 之外的特殊字符 现在我用 replaceAll w s 它删除了所有特殊字符 但我想保留 谁能告诉我我该怎么办 Use replaceAll w s 我所做的是将下划线和连字符添加到正则表达式中 我添加了一个 连字符之前
  • 当分配给变量时,我可以以某种方式重用 Gremlin GraphTraversals 代码吗?

    我有看起来像这样的 GraphTraversals attrGroup GraphTraversal
  • hibernate总是自己删除表中的所有数据

    您好 我正在开发一个 spring mvc 应用程序 它使用 hibernate 连接到存储文件的 mysql 数据库 我有两个方法 一个方法添加我选择的特定文件路径中的所有文件 另一种方法调用查询以返回从 mysql 存储的文件列表 问题
  • 序列化对象以进行单元测试

    假设在单元测试中我需要一个对象 其中所有 50 个字段都设置了一些值 我不想手动设置所有这些字段 因为这需要时间而且很烦人 不知何故 我需要获得一个实例 其中所有字段都由一些非空值初始化 我有一个想法 如果我要调试一些代码 在某个时候我会得
  • Spring Data 与 Spring Data JPA 与 JdbcTemplate

    我有信心Spring Data and Spring Data JPA指的是相同的 但后来我在 youtube 上观看了一个关于他正在使用JdbcTemplate在那篇教程中 所以我在那里感到困惑 我想澄清一下两者之间有什么区别Spring
  • 使用 AWS Java SDK 为现有 S3 对象设置 Expires 标头

    我正在更新 Amazon S3 存储桶中的现有对象以设置一些元数据 我想设置 HTTPExpires每个对象的标头以更好地处理 HTTP 1 0 客户端 我们正在使用AWS Java SDK http aws amazon com sdkf
  • 使用 Flyway 和 Hibernate 的 hbm2ddl 在应用程序的生命周期中管理数据库模式

    我正在开发 Spring Hibernate MySql 应用程序 该应用程序尚未投入生产 我目前使用 Hibernatehbm2ddl该功能对于管理域上的更改非常方便 我也打算用Flyway用于数据库迁移 在未来的某个时候 该应用程序将首
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • Keycloak - 自定义 SPI 未出现在列表中

    我为我的 keycloak 服务器制作了一个自定义 SPI 现在我必须在管理控制台上配置它 我将 SPI 添加为模块 并手动安装 因此我将其放在 module package name main 中 并包含 module xml 我还将其放
  • Android JNI C 简单追加函数

    我想制作一个简单的函数 返回两个字符串的值 基本上 java public native String getAppendedString String name c jstring Java com example hellojni He
  • Springs 元素“beans”不能具有字符 [children],因为该类型的内容类型是仅元素

    我在 stackoverflow 中搜索了一些页面来解决这个问题 确实遵循了一些正确的答案 但不起作用 我是春天的新人 对不起 这是我的调度程序 servlet
  • 中断连接套接字

    我有一个 GUI 其中包含要连接的服务器列表 如果用户单击服务器 则会连接到该服务器 如果用户单击第二个服务器 它将断开第一个服务器的连接并连接到第二个服务器 每个新连接都在一个新线程中运行 以便程序可以执行其他任务 但是 如果用户在第一个
  • JAVA - 如何从扫描仪读取文件中检测到“\n”字符

    第一次海报 我在读取文本文件的扫描仪中读取返回字符时遇到问题 正在读取的文本文件如下所示 test txt start 2 0 30 30 1 1 90 30 0 test txt end 第一行 2 表示两个点 第二行 位置索引 0 xp
  • Swagger/Openapi-Annotations:如何使用 $ref 生成 allOf?

    我正在生成 Rest 端点 包括添加OpenAPI Swagger对生成的代码进行注释 虽然它对于基本类型运行得很好 但我在自定义类方面遇到了一些问题 现在我有很多自定义类的重复架构条目 使用 Schema 实现 MyClass class

随机推荐

  • 具有范围的子数组

    我试图将一个对象数组拆分为包含 32 个对象的较小数组 剩下的大约最后放入数组中 这是我正在使用的代码 int a sharedManager inventoryArray2 count float b a 33 int c ceilf b
  • BeginRequest 在 ASP.NET MVC 应用程序中触发静态文件

    我的印象是静态文件 CSS 图像 font face 文件等 完全绕过 ASP NET 并直接由 IIS 提供服务 但是 每个 HTTP 请求都会调用我的 BeginRequest 事件处理程序 包括静态文件的请求 这让我担心 因为我正在创
  • 如何使旧版扩展 (tfs 2013) 在 tfs 2015 update 2 中工作?

    我们让这个扩展在 tfs 2013 下工作 它只是隐藏了积压项目的快速添加面板 请参见下面的代码 我们将服务器更新到 tfs 2015 2 后 代码停止工作 无法使用 VSTS 扩展的新框架 请参阅上一个问题 这是 JavaScript 代
  • 使用包含浮点数组的 OpenCL 将结构传递到 GPU

    我目前有一些数据想要传递到我的 GPU 并将其乘以 2 我创建了一个结构 可以在这里看到 struct GPUPatternData cl int nInput nOutput patternCount offest cl float pa
  • 当类包含在另一个类中时,为什么不转发类工作的声明

    这编译 include Sprite h class GameObject public int x y w h Sprite sprite public GameObject GameObject int x int y int w in
  • 我可以使用 VC++ 2008 创建 Dll 并在 VC++ 6 中使用它吗?

    我用 VC 2008 制作了一个 DLL 当我在控制台应用程序 VC 6 0 中使用它时 出现异常 msvcr90 dll 0xc0000005 访问冲突 Access Violation在这种情况下可以意味着很多事情 并且msvcr90
  • 后台服务之间如何通信

    我正在实现一个应用程序 因为我有两个服务 一个服务执行某些任务并将某些值传递给另一个服务 然后该服务使用该值执行某些任务 当第一个服务生成第一个值时 它应该启动第二个服务 此后 第一个服务生成的值将添加到第二个服务的队列中 第一次当第二个服
  • 从 C# 调用 VBA 函数

    是否可以调用一个 VBA 函数 在 Access 中 该函数从外部世界获取两个字符串参数 例如从 c 中 但其他函数也可以这样做 这是从 C 调用 Access 数据库函数的示例 我过去曾使用该函数来创建类似的功能 private void
  • HTTP 保持活动状态和 ServiceHost / C#?

    如何使用应用程序配置和 C ServiceHost 启用 禁用 HTTP Keep alive 并设置自托管服务的连接超时 例如 MyService service new MyService ServiceHost serviceHost
  • 未定义的变量:GPVAL_DATA_Y_MIN(Gnuplot)

    基于这篇文章 我正在使用 gnuplot gnuplot 4 6 patchlevel 1 gnuplot 范围内的最大值和最小值 我正在尝试使用set yr GPVAL DATA Y MIN GPVAL DATA Y MAX 在我的 pg
  • 是什么导致 Winforms 默默地丢弃未处理的异常(没有 try/Catches)?

    我正在向我的 winforms 控件添加新功能 其中一部分要求曾经始终使用的变量现在是可选的 如果它为空 则从第二个源获取数据 我做了一些更改并运行了我的表单 却发现什么也没有发生 甚至以前有效的功能也没有发生 我很困惑地浏览了代码 发现我
  • 用于查找 C# 类和方法名称的正则表达式

    我正在编写一个影响分析工具 它将解析一堆选定的文件类型并查找文件 在本例中为 cs 文件 内的类和方法调用 我已经成功编写了一个正则表达式 可以查找一行代码是否是方法调用 Regex re new Regex b public privat
  • 为什么Java中对象的Hashcode会改变?

    为什么Java中对象的Hashcode会改变 它有什么变化吗 它与哈希表有什么关系 每个对象都应该有它唯一的哈希码 那么 重新哈希是其原因吗 提前致谢 The defaulthashcode的实现相当于对象标识 但是 某些对象会覆盖哈希码
  • 将图像叠加到相机预览 SurfaceView 上

    我有一个SurfaceView它被用来绘制图像 我想将它们叠加到手机相机的实时反馈上 目前 SurfaceView包含图像的图像具有白色背景 但如果我要将它们覆盖到手机的相机画面上 它们必须是透明的 相机和动画绘制不能同时完成Surface
  • Xamarin iOS IPv6 应用商店拒绝

    我们一直在构建一个关于客户端 服务器应用程序的 iOS 应用程序 我们在 iOS 应用程序中通过 Xamarin 使用 SQL 连接和 WCF Web 服务 SQL连接代码 String ips 10 0 0 1 Example SqlCo
  • 连接 SQLite 数据库失败

    我正在尝试在 Java Applet 中访问我的 SQLite3 数据库 当我运行代码来连接到数据库时 出现此错误没有找到适合 a db 的驱动程序 我该如何修复它 现在我不完全确定我实际上已经安装了正确的驱动程序 我会告诉你我做了什么 你
  • 如何使用 DataTemplate + 触发器在视图之间切换

    我有一个要求 其中用户可以切换以树或数据网格中的文本或流程图的形式查看分层数据 用户可以通过单击切换按钮来完成此操作 该按钮显示 切换模式 我希望以这样一种方式来完成这一切 即它只能在视图中处理 因为所有三种情况下的 ViewModel 都
  • 使用php sdk扩展权限

    我正在使用 php sdk 开发 Facebook 应用程序 我想从我的应用程序的用户那里获取一些扩展权限 由于这是用户登录 Facebook 后进入的应用程序 那么当用户访问我的页面时我如何获得扩展权限 我们无法放置可以获取权限的登录按钮
  • jOOQ不生成源

    我试图将 jOOQ 包含到我的代码中 但是没有生成任何代码 执行时mvn clean generate sources 不生成任何源 我希望它创建一个Category类 其定义如下schema sql file CREATE TABLE I
  • Java 原始数据膨胀异常

    我试图在 java 中解码 JWT 有效负载 但该有效负载被压缩 放气 zip DEF java util zip DataFormatException 标头检查不正确 private static byte decompress byt