一乙帮、前言
這篇文章是本人對于證書、簽名极景、密鑰的理解察净,可能有錯誤的地方,望指正盼樟。
這篇文章回答了什么是.jks(JAVA key store)塞绿?Alias(別名)又是什么?jks和別名的password(密碼)又有什么不為人知的秘密恤批?
二、key(密鑰)相關的基本概念
通常所說的密鑰加密是采用的是非對稱加密方式裹赴。即喜庞,每個key都含有一對密鑰和一個hash值(指紋)诀浪,一對密鑰也就是公鑰和私鑰。公鑰可以分發(fā)出去延都,私鑰自己保密雷猪。用公鑰加密的內容,只能用私鑰解出晰房;用私鑰加密的內容求摇,只能用公鑰解出。
三殊者、解決開發(fā)中的相關問題
1与境、什么是.jks文件?
.jks文件是密鑰庫格式的文件猖吴,文件中保存了一個密鑰庫摔刁,密鑰庫中又保存了多個密鑰。
每個密鑰中包含了兩條數(shù)據(jù):
(1)密鑰實體(Key entity)— 密鑰(secret key)又或者是私鑰和配對公鑰(采用非對稱加密)
(2)可信任的證書實體(trusted certificate entries)— 只包含公鑰
因此海蔽,我們平時說的證書也就是公鑰共屈,密鑰也就是私鑰,這里翻譯可能有點亂党窜,看了好多資料也沒個準確的定義拗引,重點是意會。
2幌衣、Alias(別名)又是什么矾削?
別名則是這條密鑰的名字,用來人為地區(qū)別分不同的密鑰泼掠,密鑰是字符怔软,也不太好背。
3择镇、jks和別名的password(密碼)又有什么不為人知的秘密挡逼?
jks的密碼就是密鑰庫的密碼,擁有這個密碼就可以得到這個密鑰庫里所有密鑰的公鑰腻豌。別名的密碼就是私鑰的密碼家坎,擁有這個密碼就可以得到私鑰的密碼,一般這個密碼是開發(fā)者自己保留吝梅。
4虱疏、APK的簽名機制有什么作用?
(1)APK的升級安裝:APK如果使用一個key苏携,發(fā)布時另一個key的相同的APK文件將無法安裝或覆蓋老的版本做瞪,這樣可以防止你已安裝的應用被惡意的第三方覆蓋或替換掉。
(2)功能和數(shù)據(jù)共享:Android提供了基于簽名的權限機制,一個APK可以向另一個以相同證書簽名的APK開放自己的功能和實現(xiàn)數(shù)據(jù)共享装蓬。