因为签名的jar文件的时间戳支持哪个java版本SHA-256和SHA256withRSA

我在jar文件的签名中有以下条目

Timestamped by "CN=GlobalSign TSA for Advanced - G3 - 001-02, O=GMO GlobalSign KK, C=JP" on Mo Apr 10 11:48:34 UTC 2017 Timestamp digest algorithm: SHA-256 Timestamp signature algorithm: SHA256withRSA, 2048-bit key 

我已经发现时间戳消息algoirthm上的SHA-256和时间戳签名算法中的SHA256withRSA在java版本低于1.7.0_76的系统上运行jar文件时会导致问题(jar文件被标记为无符号)。

有人可以告诉我时间戳摘要和时间戳签名支持这两种算法的Java版本吗?

低于1.7.0_76的Java版本不支持SHA-256用于由https://bugs.openjdk.java.net/browse/JDK-8049480引起的时间戳(该修复包含在1.7.0_76 http://www.oracle.com/中technetwork / java / javase / 2col / 7u76-bugfixes-2389098.html )

从“Oracle JRE和JDK加密路线图”开始,SHA-1仍未计划在代码签名时禁用。

所以我认为现在最好的选择(支持旧Java版本)是使用SHA-1作为时间戳算法。 (使用8u101,7u111以下签名使用8u101,7u111或以上的-tsadigestalg选项)

我已经测试过用jar签名的jar文件

 Digest algorithm: SHA-256 Signature algorithm: SHA256withRSA, 2048-bit key Timestamp digest algorithm: SHA-1 Timestamp signature algorithm: SHA1withRSA, 2048-bit key 

使用Java 7,8,9(ea + 174)正常工作

一种解决方案是不对jar文件加盖时间戳。 等待更好的推荐……