android簽名打包有兩個(gè)重要的基礎(chǔ)知識(shí):
數(shù)據(jù)摘要
1)無(wú)論輸入的消息有多長(zhǎng)邻梆,計(jì)算出來(lái)的消息摘要的長(zhǎng)度總是固定的。例如應(yīng)用MD5算法摘要的消息有128個(gè)比特位梳星,用SHA-1算法摘要的消息最終有160比特位的輸出。(換算為16進(jìn)制,長(zhǎng)度/4)?
2)一般來(lái)說(shuō)(不考慮碰撞的情況下),只要輸入的原始數(shù)據(jù)不同夫偶,對(duì)其進(jìn)行摘要以后產(chǎn)生的消息摘要也必不相同,即使原始數(shù)據(jù)稍有改變觉增,輸出的消息摘要便完全不同兵拢。但是,相同的輸入必會(huì)產(chǎn)生相同的輸出逾礁。?
3)具有不可逆性说铃,即只能進(jìn)行正向的信息摘要,而無(wú)法從摘要中恢復(fù)出任何的原始消息
.jks文件
? ? 應(yīng)用發(fā)布上線的時(shí)候,使用jks文件對(duì)其簽名,可以防止應(yīng)用被惡意篡改替換,同樣也是開(kāi)發(fā)者身份的標(biāo)識(shí),加強(qiáng)應(yīng)用的安全性.
????日常開(kāi)發(fā)中經(jīng)常會(huì)使用到地圖,分享,支付等的第三方框架,申請(qǐng)時(shí)往往需要填入應(yīng)用的sha1值,正式發(fā)包時(shí)使用的是jks文件中的sha1值,本地測(cè)試時(shí)使用的是本地的debug.jks中的sha1值.通過(guò)指令查看sha1值,進(jìn)入jks文件目錄,打開(kāi)終端,執(zhí)行
????得到了jks文件中的SHA1值,這個(gè)值就是申請(qǐng)時(shí)需要填入各個(gè)第三方平臺(tái)的正式包的值SHA1值嘹履。這個(gè)SHA1值就是證書指紋腻扇,是對(duì)證書的數(shù)據(jù)摘要,證書是隱式創(chuàng)建的砾嫉,提取一下jks文件中的證書文件:
????再對(duì)證書文件進(jìn)行摘要,使用sha1算法后幼苛,也就是是jks中的SHA1值。
jks文件是一個(gè)java中的密鑰管理庫(kù)焰枢,里面存放我們的私鑰蚓峦,公鑰以及證書。