正如我从https://docs.oracle.com/javase/tutorial/deployment/jar/intro.html了解到的,使用jarsigner签署jar文件的过程如下:
>
清单文件用每个文件的哈希列表更新:
名称: com/qark/util/files/diff/用户界面/main/DiffMergeFrame.classSHA-256-Digest: GZgPXG9YnmVGXb hFwnJF4im4hb/qixX2Gs ZNpdGFU=
名称:com/qarks/util/ui/swing/PrintManager。SHA-256类摘要:cO6XolXrk5NlHBocDF0fzojlwSAKlDoGsY/jdJ0fzdY=
签名文件(*. SF)已创建。它包含:
将创建签名块文件(*.RSA,*.DSA)。它存储*的数字签名。SF签名文件。
所以,我想知道为什么我们需要*. SF-为什么我们不能只签署一个清单文件,而不是*. SF文件?
还有,在*中设置哈希的目的是什么。SF文件(附加检查?在什么情况下?)?
签名文件(.SF)表示
的签名者。jar文件-从技术上讲,可以有多个。
要回答第二个问题,请想象一个案例,其中a
。jar文件在签名后被修改。清单文件会被更改,因此会更改
中的哈希。SF(摘要清单)将不再与当前的SF(摘要清单)匹配。清单文件。
但是,如果只将新文件添加到<代码>。jar仍然会通过验证,因为验证算法(除其他外)会查看
中的每个条目。SF,并根据清单中的相应条目验证哈希值(清单中的新条目将被忽略)。
总之,
。SF
用于验证中没有任何文件。jar在签名时已更改。
您可以在此处阅读有关签名验证的更多信息。
问题内容: 为什么要对我的JAR文件签名? 我知道我需要对客户端JAR文件(包含Applet)进行签名,以便可以执行诸如文件系统访问之类的特殊操作,并且不会显示Windows底部的恼人内容,但是为什么呢?我是否需要对包含Servlet等的服务器端JAR文件进行签名? 何时和何时不签署JAR的一些基本规则将不胜感激-谢谢! 问题答案: 简短的答案-除非您的公司政策强迫您这样做,否则不要这样做。 回答
我的成绩档案里有这个: 然后,当我生成我的发行版APK时,我只需转到,就创建了APK。与转到不同,它会提示我输入以下内容: 我的问题是,我当前的gradle文件用什么版本的签名生成?是V1还是V2?我如何修改我的gradle文件,以使它特定地构建与V1或V2?
我正在编写一个服务,其中我用一个空容器预签名pdf文件,从pdf文件中提取一个字节范围的散列,并将其发送到另一个服务,这将允许用户使用移动电话对散列进行签名。我拿回一个证书,我将注入到预签名pdf文件中的签名容器中。 签名本身起作用,数字签名是有效的,但我只需要更改可见签名本身的文本。我认为这是可能的,因为可见签名实际上与证书本身没有任何关系,所以显示来自证书的名称只是一种方便,特别是在多个签名的
我试图用OpenSSL验证一个PE文件的证书/签名(或者实际上用Python,但是看起来Python在证书处理方面很糟糕)。 我已从PE文件中提取了DER PKCS7证书,如下所述:http://blog.didierstevens.com/2008/01/11/the-case-of-the-missing-digital-signatures-tab/ 我已经创建了一个没有校验和和签名数据的P
我想做的是: 使用证书使用openssl对zip文件进行签名,并创建签名文件(PKCS#7) 我安装了openssl并打开了控制台 我创建了一个rsa密钥(openssl genrsa-out key.pem 2048) 我创建了一个请求(openssl req-batch-sha256-new-key key.pem-out request.pem-subj'/c=../st=../l=../o
我试图理解jar和jarsigner在jar和注册java代码时,要以编程方式复制这些步骤的一部分,需要经历哪些步骤。 明确地说,我想知道到底是什么。SF文件,因为我已经阅读了许多文档,每个文档都说明了一些略有不同的东西,一些例子: http://www.ntu.edu.sg/home/ehchua/programming/java/J9d_Jar.html 为JAR中的每个文件计算摘要(或哈希)