Подтвердить что ты не робот

Можем ли мы отменить уже подписанные банки в java?

Я имею в виду, что у меня есть банка со старой подписью. и я хочу, чтобы он ушел в отставку с новой подписью. Так это возможно?

Если да, мало информации о том, как?

4b9b3361

Ответ 1

Если подпись не принадлежит вам, вам нужно сначала развязать банку.

Так же (предположим unix, переведите в dos иначе):

jar xvf JarName.jar

rm -rf META-INF

jar cvf JarName.jar *

Теперь вам нужно запустить jarsigner, чтобы подписать jar

jarsigner -keystore /yourkeystoredirectory/mystore -storepass yourpass
      -keypass yourkeypasswd JarName.jar keyname

Если у вас нет хранилища ключей, вы можете создать его с помощью keytool.

Ответ 2

Вы можете извлечь файлы классов и повторно закрепить их своей подписью

Ответ 3

Я нашел лучшее решение на https://www.chemaxon.com/forum/viewpost35555.html#35555

  • Удалите файлы с расширением ".SF" или ".RSA" из папки META-INF внутри банки.
  • Удалить контрольные суммы подписи из META-INF/MANIFEST.MF: поля "Name" и "SHA1-Digest" должны быть удалены из META-INF/MANIFEST.MF.

Более подробную документацию можно найти в документации о оракуле: https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html#Signed_JAR_File (например, файлы ".DSA" могут быть в папке META-INF и файлы, начинающиеся с "SIG-" )