java簽名證書信息查看工具(jar簽名工具)

  • 1、如何重簽名APK文件
  • 2、創建app數字簽名證書
  • 3、Android查看應用簽名方法
  • 4、java數據證書管理工具keytool怎麼看生成成功了?
  • 5、如何用Java讀取使用證書

方法一:需要刪除apk包中的簽名文件,META-INF(更改apk格式為壓縮包形式,刪除META-INF文件夾,改回.apk格式);

將證書(debug.keystore)複製到與需要重新簽名的apk文件相同的目錄下(如:複製到D:\Sign);

進入cmd模式,進入D:\Sign目錄;

運行下面的命令jarsigner -verbose -keystore debug.keystore -storepass android -signedjar PhoneBook_signed.apk -digestalg SHA1 -sigalg MD5withRSA PhoneBook.apk androiddebugkey/*解釋:-jarsigner是Java的簽名工具-verbose參數表示:顯示出簽名詳細信息-keystore表示使用當前目錄中的debug.keystore簽名證書文件-storepass android表示Keystore密碼:「android」-signedjar PhoneBook_signed.apk表示簽名後生成的APK名稱PhoneBook.apk表示未簽名的APK Android軟體-digestalg SHA1 -sigalg MD5withRSA:這就是必須加上的參數,如果你是jdk 1.6也不受影響-androiddebugkey表示Key別名

大功告成,看看文件夾吧;

方法二:使用工具re-sign.jar。打開re-sign.jar。刪除簽名文件,META-INF後,拖動apk到re-sign.jar處,並點擊保存;

      App簽名的作用一方面保證安裝包內文件的完整性,以防文件被篡改導致不可預知的後果;另一方面在安裝包內附加應用的開發者信息。

     總體來說,有如下三種app簽名方法:

    1、開發環境自帶的app簽名

       AS等開發環境一般都自帶app簽名的功能,只需要在開發環境中找到相應功能按照步驟逐步執行即可得到簽名後的apk文件。

    2、cordova環境下編譯時自動簽名

   Keytool是java自帶的簽名工具。

   說明:

    1)release-singing.properties是手工配置的文本文件:

      2)build-extras.gradle是手工配置的文本文件:

  3、手工簽名【我就是用的這種方法,挺好用的】

     以上創建數字簽名證書和APP簽名的命令都是JAVA自帶的工具,親測沒有問題。在簽名時需要提供證書的密碼,該密碼就是創建數字簽名證書時設置的密碼。

查看應用簽名的MD5、SHA1、SHA256值及簽名演算法。

查看keystore文件簽名信息,前提要有keystore文件和密鑰,才能夠獲取keystore文件的簽名信息。

方法一:(適用於 AS)

1)打開 AS工具窗口欄右邊的 Gradle – Project – app – Tasks – android – signingReport,雙擊運行 signingReport;

在沒有keystore文件和密鑰的情況下,要想查看我們所需應用的簽名信息,就需要藉助 keytool 工具來完成。

首先解壓要查看的apk包,通過數據證書管理工具 keytool 查看apk的簽名信息。具體步驟如下:

1)將apk修改後綴為 .rar 文件後進行解壓;

2)進入解壓後的 META-INF 目錄,找到該目錄下的 xxx.RSA 文件;

3)通過命令 cmd 打開DOS窗口,輸入命令 : keytool -printcert -file [RSA文件路徑]

在查看應用簽名信息過程中,可能會遇到以下幾個問題:

定位 keytool.exe 工具所在的目錄,使用相關操作命令查看簽名信息;

JKS(Java KeyStore) :是 Java 的 keytools 證書工具支持的證書私鑰格式。jks 包含了公鑰和私鑰,可以通過 keytool 工具來將公鑰和私鑰導出。因為包含了私鑰,所以 jks 文件通常通過一個密碼來加以保護。一般用於 Java 或者 Tomcat 伺服器。

PKCS #12 :定義了一種存檔文件格式,用於實現存儲許多加密對象在一個單獨的文件中。通常用它來打包一個私鑰及有關的 X.509 證書,或者打包信任鏈的全部項目。

定位 keytool.exe 工具所在的目錄,使用操作命令轉換證書格式;

下面產生一個自簽證書。安裝完J2SDK(這裡用的是J2SDK1.4)後,在J2SDK安裝目錄的bin目錄下,有一個keytool的可執行程序。利用keytool產生自簽證書的步驟如下:

第一步,用-genkey命令選項,產生公私密鑰對。在控制台界面輸入:keytool -genkey -alias testkeypair -keyalg RSA -keysize 1024 -sigalg MD5withRSA。這裡的-alias表示使用這對公私密鑰產生新的keystore入口的別名(keystore是用來存放管理密鑰對和證書鏈的,預設位置是在使用者主目錄下,以.keystore為名的隱藏文件,當然也可指定某個路徑存放.keystore文件);-keyalg是產生公私鑰對所用的演算法,這裡是RSA;-keysize定義密鑰的長度;-sigalg是簽名演算法,選擇MD5withRSA,即用RSA簽名,然後用MD5哈希演算法摘要。接下來,系統會提示進行一些輸入:

輸入keystore密碼: abc123

您的名字與姓氏是什麼?

[Unknown]: Li

您的組織單位名稱是什麼?

nbs

證書(Certificate,也稱public-key certificate)是用某種簽名演算法對某些內容(比如公鑰)進行數字簽名後得到的、可以用來當成信任關係中介的數字憑證。證書發行機構通過發行證書告知證書使用者或實體其公鑰(public-key)以及其它一些輔助信息。證書在電子商務安全交易中有著廣泛的應用,證書發行機構也稱CA(Certificate Authority)。

應用證書

證書在公鑰加密應用中的作用是保證公鑰在某些可信的機構發布,其在協議SSL、電子交易協議SET等方面有重要的應用。圖1顯示了一個最簡單的證書應用方法:

圖1 證書應用方法

證書的應用步驟是:

(1) A把自己的公鑰PKA送到CA(Certificate Authority);

(2) CA用自己的私鑰和A的公鑰生成A的證書,證書內包括CA的數字簽名。簽名對象包括需要在證書中說明的內容,比如A的公鑰、時間戳、序列號等,為了簡化這裡不妨假設證書中只有三項內容:A的公鑰PKA、時間戳TIME1、序列號IDA。那麼CA發送給A的簡單證書憑證可表達為:CertA=Eca[TIME1,IDA,PKA];

(3) B同樣把自己的公鑰PKB送到CA;

(4) B得到CA發布的證書CertB;

(5) A告知B證書CertA;

(6) B告知A證書CertB。

A、B各自得到對方證書後,利用從CA得到的公鑰(在CA的自簽證書中)驗證彼此對方的證書是否有效,如果有效,那麼就得到了彼此的公鑰。利用對方的公鑰,可以加密數據,也可以用來驗證對方的數字簽名。

本文為了方便說明,並沒有使用從CA獲得的證書,而是通信雙方各自產生自簽證書,也就是說圖1的A和B並沒有經過CA,不過前提是A和B之間是互相擁有對方的證書。

原創文章,作者:KVD2M,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/126365.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
KVD2M的頭像KVD2M
上一篇 2024-10-03 23:07
下一篇 2024-10-03 23:07

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29

發表回復

登錄後才能評論