是否可以在 java Manifest 文件中包含 SHA1-Digest 而无需实际使用密钥

2023-12-01

目前我们使用 jarsigner 来签署我们的 jar。然后,我们显示某些特定类的一些 SHA1-Digest 值,以向外部审计员证明代码在版本之间没有更改。

我们只依靠META-INF/xxx.SF文件来获取摘要信息,我们从不使用META-INF/xxx.DSA签名块文件。

由于我们只需要在代码中进行摘要计算,我想知道是否可以有.SF使用一些java工具生成的文件,而不实际使用密钥。

I read http://docs.oracle.com/javase/6/docs/technotes/tools/windows/jarsigner.html但看起来密钥是强制性的。


这应该是可能的。 MANIFEST.MF 文件包含相应类文件的 Base64 编码的 SHA-1。

从你的文档中:

In the manifest file, the SHA digest value for each source file is the
digest (hash) of the binary data in the source file. In the .SF file,
on the other hand, the digest value for a given source file is the
hash of the three lines in the manifest file for the source file.

因此,迭代所有类文件,计算 SHA-1,按照 MANIFEST.MF 中显示的格式进行格式化,然后对其进行哈希处理并按 SF 文件中显示的格式进行格式化。

计算中不涉及密钥。

示例:考虑“jce1_2_2.jar”(或任何您已正确签名的内容)。这包含

  1. 表单的 MANIFEST.MF 条目

    Name: javax/crypto/KeyAgreement.class
    SHA1-Digest: c2p0JimzpV0dG+NChGLl5cI7MuY=
    <empty line>
    
  2. 这是“KeyAgreement.class”的 Base64(SHA1-1)(路径不相关)。注意第三个空行。行结尾为 CRLF (Windows)。

  3. META-INF/4JCEJARS.SF 条目

    Name: javax/crypto/KeyAgreement.class
    SHA1-Digest: whGBXE+AvYO6wAoVCdnocOPIrsE=
    

这不是文件的哈希值,而是上面三行的哈希值。

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

是否可以在 java Manifest 文件中包含 SHA1-Digest 而无需实际使用密钥 的相关文章

随机推荐

  • 无法跟踪实体类型的实例,因为跟踪了具有相同键值的另一个实例[关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我在 asp net core 2 0 中使用通用存储库模式 它无法处置存储库对象 当我要更新条目时 它已成功更新一次 但当我尝试更新更多时 它会抛出以下异常 无法跟踪实体类型 Compa
  • 如何使用函数返回两列

    我想用我的 SQL 函数返回 2 个值 CREATE OR REPLACE FUNCTION get avg prices RETURNS table avg sale price decimal avg rent price decima
  • 即使在 .NET 中使用 SQLParameter 也存在 SQL 注入示例?

    我听说当对 SQL Server 使用 ADO NET SQLParameter 参数化查询 时 仍然可以进行 SQL 注入 我正在寻找 C VB 代码中的真实示例作为证据 编辑 我正在寻找具体的工作示例 没有介绍 sql 注入或如何防止它
  • 使用自定义着色器渲染“硬”边缘

    我想重现使用创建的效果THREE EdgesHelper 在 硬 对象边缘上绘制边界 但使用自定义着色器而不是添加单独的着色器THREE Line目的 本质上我想做的事情这个演示 但仅适用于 硬 边界 例如边界不在两个共面之间 方法 应用类
  • ADFS + OpenID Connect 电子邮件声明和外部 ADFS

    我在 Windows Server 2016 上使用 OpenID Connect 设置 ADFS 时遇到困难 我已经设置 AD 进行测试 并且可以成功进行身份验证 但是电子邮件声明不在 id 令牌中 此外 我还在声明提供者信任中设置了外部
  • 需要获得超过 20 个区域监控通知

    我正在开发一个应用程序 用户可以在其中设置多个位置 当用户进入或离开特定位置边界时 我成功显示通知 现在 有一种情况 我需要为所有保存的位置提供监控 并且可能有数百个甚至更多 我在 Apple 论坛和许多地方读到过 iOS 设备只允许 20
  • 获取对特定消息做出反应的用户列表

    我正在学习discord py 我正在尝试获取对特定消息做出反应的用户列表 名称 ID 下面是我的代码 async def ga self ctx channel ctx channel users async for message in
  • 使用 HTML Agility 搜索所需数据后如何从网页中抓取数据

    我想从中获取信息这个网站 使用 HTML Agility Pack 进入我的 ASPX 页面 但我不能这样做 因为数据是在我在网页中搜索数据后加载的 我需要在5分钟的间隔后连续完成一些数据 您提到的网站中的搜索结果是使用 Javascrip
  • 将减法结果限制为最小值为零

    我有一个向量 x 其值范围从 0 到 1 例如x lt c 0 0 5 1 我从 x 中减去 0 5 x 0 5 的结果x 0 5范围从 0 5 到 0 5 但是 我想将结果的最小值限制为 0 即新的范围将为 0 5 到 0 任何以前的负数
  • 使用 lcov 报告代码覆盖率时出错

    更新到 Ubuntu 16 04 后 我正在尝试对我的项目进行覆盖 我明白了 Deleted 665 files Writing data to coverage info cleaned lcov ERROR cannot write t
  • VS2010 中的 MFC100d.dll 问题

    我在 vs2010 上有一个 mfc c 项目 我可以在调试和发布模式下构建它 但是当我在调试模式下运行它时 它会给出以下 mfc100d dll 错误 我还安装了C 运行环境vcredist x86 exe问题仍然没有解决 我还设置了多线
  • JfreeChart:水平滚动 XYBarChart -(图表翻译和导航)

    我正在尝试水平滚动 XYBarChart 我正在关注 JfreeChart 的演示 TranslateDemo1 java 之一 您可以在其中找到源代码 源代码适用于 TimeSeriesChart 然而 我尝试使用 XYBarChart
  • Request.js 请求方法返回结果?

    var request require request var cheerio require cheerio request url function error response html if error response statu
  • 无法将 DBNull.Value 转换为类型“System.DateTime”。请使用可为 null 的类型

    这是我的代码 var finalResults from r in results AsEnumerable where r Field
  • window.open缓存问题

    我在用着窗口 打开在打开网页的函数中 该函数显示有关 当前页面 页面 URL 存储在 DB 中 某些页面需要身份验证 对于这些页面 我们第一次调用它们时 用户必须进行身份验证 但如果他关闭页面并再次打开它 则会显示缓存的页面 我尝试将时间添
  • 减去 Pandas 中两个不平衡的 DataFrame

    我有两个不平衡的 DataFrame 并且想通过减去值来创建第三个 DataFrame 以获得它们之间的增量 这是三个数据框的示例 我想用当前值减去相应的预期值来得到 DELTA 这按预期工作 当 CURRENT 和 EXPECTED 中的
  • 使用 c# 或批处理自动使用 winrar 提取 ISO

    我正在尝试将 ISO 提取到具有相同名称但末尾没有 iso 的文件夹中 我在使用 winrar 时遇到问题 因为当我从包含 ISO 的文件夹中开始搜索时 它不会启动提取 已更新答案代码 private void ExtractISO str
  • ajax - 新选项卡中的 pdf

    我正在使用 Laravel 我在 post 方法后得到一个 PDF 并使用 Ajax 发出此请求 成功后如何在新选项卡中显示此 PDF 当我不使用 Ajax 运行代码时 它可以工作 但是当我想用 Ajax 运行它时 我不知道如何在新选项卡中
  • Excel如何在不使用VBA的情况下从逗号分隔列表中查找匹配元素的所有行

    这是我的问题 我有一个包含两列的表 产品参考和相应的通知 ID A B C D 1 Product Notice 2 p1 n1 3 p2 n2 4 p3 n3 5 6 p1 p3 edi
  • 是否可以在 java Manifest 文件中包含 SHA1-Digest 而无需实际使用密钥

    目前我们使用 jarsigner 来签署我们的 jar 然后 我们显示某些特定类的一些 SHA1 Digest 值 以向外部审计员证明代码在版本之间没有更改 我们只依靠META INF xxx SF文件来获取摘要信息 我们从不使用META