Android 平臺(tái)簽名證書生成 并獲取SHA1 詳解

簽名文件keystore一般有兩種:jks后綴或者keystore后綴蛀序,Android Studio中創(chuàng)建的為jks后綴徐裸,keytool創(chuàng)建的為keystore后綴,兩種文件均可用于APP打包。

1. 生成證書

Android證書的生成是自助和免費(fèi)的,不需要審批或付費(fèi)吧凉。
可以使用JRE環(huán)境中的keytool命令生成狰贯。以下是windows平臺(tái)生成證書的方法:

    1. 安裝JRE環(huán)境(推薦使用JRE8環(huán)境,如已有可跳過)
      可從Oracle官方下載jre安裝包:https://www.oracle.com/technetwork/java/javase/downloads/index.html
      下面以安裝目錄為“C:\Program Files\Java\jre1.8.0_201”為例颤练,實(shí)際操作時(shí)請(qǐng)修改為自己安裝目錄
      建議將JRE安裝路徑添加到系統(tǒng)環(huán)境變量,已配置可跳過此章節(jié)
set PATH=%PATH%;"C:\Program Files\Java\jre1.8.0_201\bin"
    1. 生成簽名證書
      使用keytool -genkey命令生成證書:
keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore

testalias是證書別名器瘪,可修改為自己想設(shè)置的字符,建議使用英文字母和數(shù)字
test.keystore是證書文件名稱,可修改為自己想設(shè)置的文件名稱耻涛,也可以指定完整文件路徑

回車后會(huì)提示:


生成證書過程

英文版的如下

>keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore d:\test.keystore
Enter keystore password:  //輸入證書文件密碼墨辛,輸入完成回車  
Re-enter new password:   //再次輸入證書文件密碼,輸入完成回車  
What is your first and last name?  
  [Unknown]:  //輸入名字和姓氏寥闪,輸入完成回車  
What is the name of your organizational unit?  
  [Unknown]:  //輸入組織單位名稱疲憋,輸入完成回車  
What is the name of your organization?  
  [Unknown]:  //輸入組織名稱梁只,輸入完成回車  
What is the name of your City or Locality?  
  [Unknown]:  //輸入城市或區(qū)域名稱搪锣,輸入完成回車  
What is the name of your State or Province?  
  [Unknown]:  //輸入省/市/自治區(qū)名稱,輸入完成回車  
What is the two-letter country code for this unit?  
  [Unknown]:  //輸入國(guó)家/地區(qū)代號(hào)(兩個(gè)字母)灰追,中國(guó)為CN弹澎,輸入完成回車  
Is CN=XX, OU=XX, O=XX, L=XX, ST=XX, C=XX correct?  
  [no]:  //確認(rèn)上面輸入的內(nèi)容是否正確裁奇,輸入y,回車  

Enter key password for <testalias>  
        (RETURN if same as keystore password):  //確認(rèn)證書密碼與證書文件密碼一樣(HBuilder|HBuilderX要求這兩個(gè)密碼一致)免胃,直接回車就可以

以上命令運(yùn)行完成后就會(huì)生成證書羔沙,路徑為D:\test.keystore

2. 獲取證書信息

可以使用以下命令查看:

keytool -list -v -keystore test.keystore  
Enter keystore password: //輸入密碼,回車

會(huì)輸出以下格式信息:

D:\>keytool -list -v -keystore test.keystore
輸入密鑰庫口令:
密鑰庫類型: PKCS12
密鑰庫提供方: SUN

您的密鑰庫包含 1 個(gè)條目

別名: testalias
創(chuàng)建日期: 2020年11月3日
條目類型: PrivateKeyEntry
證書鏈長(zhǎng)度: 1
證書[1]:
所有者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
發(fā)布者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
序列號(hào): 285ee26ccd06665f
生效時(shí)間: Tue Nov 03 14:36:27 CST 2020, 失效時(shí)間: Thu Oct 10 14:36:27 CST 2120
證書指紋:
         SHA1: 72:9C:BC:A5:58:D4:6B:5D:5C:46:F3:ED:8B:99:9C:16:01:FE:48:80
         SHA256: 73:BE:93:FB:EA:2D:00:39:2C:22:3F:75:04:1F:5C:0A:AD:C3:67:20:05:C9:7F:4E:AB:0E:62:F5:5D:2C:60:CB
簽名算法名稱: SHA256withRSA
主體公共密鑰算法: 2048 位 RSA 密鑰
版本: 3

擴(kuò)展:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 6D B7 FA BA 7E 94 B2 97   BD B7 5C 12 E7 F4 20 3F  m.........\... ?
0010: 0D 1B 00 6A                                        ...j
]
]



*******************************************
*******************************************

其中證書指紋信息(Certificate fingerprints):

  • MD5 證書的MD5指紋信息(安全碼MD5)
  • SHA1 證書的SHA1指紋信息(安全碼SHA1)
  • SHA256 證書的SHA256指紋信息(安全碼SHA245)

下面介紹一下Android中使用的開發(fā)版和發(fā)布版SHA1

開發(fā)版SHA1:是指在開發(fā)調(diào)試時(shí)苗桂,從Android Studio或者Eclipse中直接運(yùn)行的APP在打包時(shí)使用了開發(fā)工具默認(rèn)的開發(fā)版(debug)簽名文件,開發(fā)版簽名文件對(duì)應(yīng)有唯一的SHA1。
發(fā)布版SHA1:是指在提交測(cè)試或發(fā)布時(shí)友雳,APP簽名打包過程中選擇的指定簽名文件,一般此簽名文件為開發(fā)者或者開發(fā)團(tuán)隊(duì)持有,與具體的開發(fā)工具無關(guān),發(fā)布版簽名文件同樣也對(duì)應(yīng)有唯一的SHA1哆档。
在AndroidStudio中的Terminal中使用keytool命令獲取杠巡。

  • 發(fā)布版SHA1
    前提:需要知道簽名文件keystore中key的別名(非必需,可不填)深滚,keystore路徑和keystore的密碼蹬昌。
keytool -exportcert -list -v -alias <your-key-name> -keystore <path-to-production-keystore>

其中<your-key-name>替換為自己發(fā)布版簽名文件中key的別名(非必需满粗,如果不知道別名去掉-alias <your-key-name>即可)组去,<path-to-production-keystore>替換為自己發(fā)布版簽名文件的完整路徑寿烟,例如我的keystore文件存放在D:\ReleaseApp.jks(Windows操作系統(tǒng)),key別名為androidrelease缭贡,在Android Studio中的Terminal中輸入:

keytool -exportcert -list -v -alias androidrelease -keystore D:\ReleaseApp.jks

然后輸入密碼快鱼,確認(rèn)正確之后回車,在證書指紋中會(huì)顯示此簽名文件的SHA1:


sha1

若為keystore類型的文件同樣操作即可獲取宛琅。如keystore文件存放在D:\ release.keystore(Windows操作系統(tǒng))仓洼,key別名為release.keystore箕戳,在Android Studio中的Terminal中輸入:

keytool -exportcert -list -v –alias release.keystore -keystore D:\release.keystore

然后輸入密碼囚似,確認(rèn)正確之后回車祸穷,在證書指紋中會(huì)顯示此簽名文件的SHA1:


sha1
  • 開發(fā)版SHA1
    前提:簽名文件keystore的別名默認(rèn)為androiddebugkey,keystore默認(rèn)路徑為%USERPROFILE%.android\debug.keystore(Windows操作系統(tǒng)下。若為Mac和Linux衰倦,此路徑應(yīng)該為~/.android/debug.keystore)和keystore的密碼默認(rèn)為android塑悼。
keytool -exportcert -list -v -alias <your-key-name> -keystore <path-to-production-keystore>

其中<your-key-name>替換為androiddebugkey,<path-to-production-keystore>替換為%USERPROFILE%.android\debug.keystore(Windows操作系統(tǒng)下巷屿。若為Mac和Linux,此路徑應(yīng)該為~/.android/debug.keystore)。
若為Windows操作系統(tǒng)骤坐,在Android Studio中的Terminal中輸入:

keytool -exportcert -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

若為Mac和Linux操作系統(tǒng)霹抛,在Android Studio中的Terminal中輸入:

keytool -exportcert -list -v -aliasandroiddebugkey -keystore ~/.android/debug.keystore

然后輸入密碼android顶滩,確認(rèn)正確之后回車叶摄,在證書指紋中會(huì)顯示此簽名文件的SHA1:


sha1
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末去扣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子唆铐,更是在濱河造成了極大的恐慌艾岂,老刑警劉巖朋其,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件梅猿,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡钞啸,警方通過查閱死者的電腦和手機(jī)体斩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門絮吵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來枫甲,“玉大人,你說我怎么就攤上這事粱栖∧志浚” “怎么了食店?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)价认。 經(jīng)常有香客問我,道長(zhǎng)渠退,這世上最難降的妖魔是什么碎乃? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任梅誓,我火速辦了婚禮佛南,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘愧怜。我一直安慰自己妈拌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布猜惋。 她就那樣靜靜地躺著著摔,像睡著了一般定续。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上摹察,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天供嚎,我揣著相機(jī)與錄音,去河邊找鬼逼争。 笑死誓焦,一個(gè)胖子當(dāng)著我的面吹牛着帽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播启摄,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼歉备,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蕾羊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起龟再,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤利凑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后哀澈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體度气,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡磷籍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年院领,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汪诉。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡扒寄,死狀恐怖迄本,靈堂內(nèi)的尸體忽然破棺而出嘉赎,到底是詐尸還是另有隱情公条,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布靶橱,位于F島的核電站关霸,受9級(jí)特大地震影響杰扫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜章姓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一苍日、第九天 我趴在偏房一處隱蔽的房頂上張望窗声。 院中可真熱鬧,春花似錦拦耐、人聲如沸见剩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至疗琉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間盈简,已是汗流浹背太示。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工类缤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人餐弱。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓岸裙,卻偏偏與公主長(zhǎng)得像速缆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子剧董,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容