利用 Android KeyStore System,您可以在容器中存儲(chǔ)加密密鑰,從而提高從設(shè)備中提取密鑰的難度。在密鑰進(jìn)入密鑰庫后,可以將它們用于加密操作,而密鑰材料仍不可導(dǎo)出。此外,它提供了密鑰使用的時(shí)間和方式限制措施,例如要求進(jìn)行用戶身份驗(yàn)證才能使用密鑰,或者限制為只能在某些加密模式中使用。
為前鋒等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及前鋒網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為做網(wǎng)站、網(wǎng)站建設(shè)、前鋒網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
密鑰庫系統(tǒng)由 KeyChain API 以及在 Android 4.3(API 級(jí)別 18)中引入的 Android 密鑰庫提供程序功能使用。本文說明了何時(shí)以及如何使用 Android 密鑰庫提供程序。
1、 存儲(chǔ)密匙:Android提供的這個(gè)KeyStore最大的作用就是不需要開發(fā)者去維護(hù)這個(gè)密匙的存儲(chǔ)問題,相比起存儲(chǔ)在用戶的數(shù)據(jù)空間或者是外部存儲(chǔ)器都更加安全。注意的是這個(gè)密匙隨著用戶清除數(shù)據(jù)或者卸載應(yīng)用都會(huì)被清除掉。
2、得益于Android獨(dú)立的一套密匙庫系統(tǒng),可以提高安全性
Android 密鑰庫系統(tǒng)可以保護(hù)密鑰材料免遭未經(jīng)授權(quán)的使用。首先,Android 密鑰庫可以防止從應(yīng)用進(jìn)程和 Android 設(shè)備中整體提取密鑰材料,從而避免了在 Android 設(shè)備之外以未經(jīng)授權(quán)的方式使用密鑰材料。其次,Android 密鑰庫可以讓應(yīng)用指定密鑰的授權(quán)使用方式,并在應(yīng)用進(jìn)程之外強(qiáng)制實(shí)施這些限制,從而避免了在 Android 設(shè)備上以未經(jīng)授權(quán)的方式使用密鑰材料。
Android 密鑰庫密鑰使用兩項(xiàng)安全措施來避免密鑰材料被提?。?/p>
為了避免在 Android 設(shè)備上以未經(jīng)授權(quán)的方式使用密鑰材料,在生成或?qū)朊荑€時(shí) Android 密鑰庫會(huì)讓應(yīng)用指定密鑰的授權(quán)使用方式。一旦生成或?qū)朊荑€,其授權(quán)將無法更改。然后,每次使用密鑰時(shí),都會(huì)由 Android 密鑰庫強(qiáng)制執(zhí)行授權(quán)。這是一項(xiàng)高級(jí)安全功能,通常僅用于有以下要求的情形:在生成/導(dǎo)入密鑰后(而不是之前或當(dāng)中),應(yīng)用進(jìn)程受到攻擊不會(huì)導(dǎo)致密鑰以未經(jīng)授權(quán)的方式使用。
支持的密鑰使用授權(quán)可歸為以下幾個(gè)類別:
作為一項(xiàng)額外的安全措施,對(duì)于密鑰材料位于安全硬件內(nèi)部的密鑰(請(qǐng)參閱 KeyInfo.isInsideSecurityHardware()),某些密鑰使用授權(quán)可能由安全硬件實(shí)施,具體取決于 Android 設(shè)備。加密和用戶身份驗(yàn)證授權(quán)可能由安全硬件實(shí)施。由于安全硬件一般不具備獨(dú)立的安全實(shí)時(shí)時(shí)鐘,時(shí)間有效性間隔授權(quán)不可能由其實(shí)施。
您可以使用 KeyInfo.isUserAuthenticationRequirementEnforcedBySecureHardware() 查詢密鑰的用戶身份驗(yàn)證授權(quán)是否由安全硬件實(shí)施。
在需要系統(tǒng)級(jí)憑據(jù)時(shí)請(qǐng)使用 KeyChain API。在應(yīng)用通過 KeyChain API 請(qǐng)求使用任何憑據(jù)時(shí),用戶需要通過系統(tǒng)提供的 UI 選擇應(yīng)用可以訪問已安裝的哪些憑據(jù)。因此,在用戶同意的情況下多個(gè)應(yīng)用可以使用同一套憑據(jù)。
使用 Android 密鑰庫提供程序讓各個(gè)應(yīng)用存儲(chǔ)自己的憑據(jù),并且只允許應(yīng)用自身訪問。這樣,應(yīng)用可以管理僅能由自己使用的憑據(jù),同時(shí)又可以提供等同于 KeyChain API 為系統(tǒng)級(jí)憑據(jù)提供的安全優(yōu)勢(shì)。這一方法不需要用戶選擇憑據(jù)。
要使用此功能,請(qǐng)使用標(biāo)準(zhǔn)的 KeyStore 和 KeyPairGenerator 或 KeyGenerator 類,以及在 Android 4.3(API 級(jí)別 18)中引入的 AndroidKeyStore 提供程序。
AndroidKeyStore 注冊(cè)為 KeyStore 類型以用于 KeyStore.getInstance(type) 方法,而在用于 KeyPairGenerator.getInstance(algorithm, provider) 和 KeyGenerator.getInstance(algorithm, provider) 方法時(shí)則注冊(cè)為提供程序。
生成新的 PrivateKey 要求您同時(shí)指定自簽署證書具備的初始 X.509 屬性。之后,您可以使用 KeyStore.setKeyEntry 將證書替換為由證書頒發(fā)機(jī)構(gòu) (CA) 簽署的證書。
要生成密鑰,請(qǐng)使用 KeyPairGenerator 和 KeyPairGeneratorSpec:
要生成密鑰,請(qǐng)使用 KeyGenerator 和 KeyGenParameterSpec。
AndroidKeyStore 提供程序的使用通過所有的標(biāo)準(zhǔn) KeyStore API 加以實(shí)現(xiàn)。
通過調(diào)用 aliases() 方法列出密鑰庫中的條目:
通過從密鑰庫提取 KeyStore.Entry 并使用 Signature API(例如 sign())簽署數(shù)據(jù):
類似地,請(qǐng)使用 verify(byte[]) 方法驗(yàn)證數(shù)據(jù):
生成密鑰或?qū)⒚荑€導(dǎo)入到 AndroidKeyStore 時(shí),您可以指定密鑰僅授權(quán)給經(jīng)過身份驗(yàn)證的用戶使用。用戶使用安全鎖定屏幕憑據(jù)(模式/PIN/密碼、指紋)的子集進(jìn)行身份驗(yàn)證。
這是一項(xiàng)高級(jí)安全功能,通常僅用于有以下要求的情形:在生成/導(dǎo)入密鑰后(而不是之前或當(dāng)中),應(yīng)用進(jìn)程受到攻擊不會(huì)導(dǎo)致密鑰被未經(jīng)身份驗(yàn)證的用戶使用。
如果密鑰僅授權(quán)給經(jīng)過身份驗(yàn)證的用戶使用,可以將其配置為以下列兩種模式之一運(yùn)行:
第一種利用 java jdk 來生成
第二種. 利用eclipse 來生成
a.
進(jìn)入 cmd 命令行提示符
進(jìn)入到j(luò)dk的bin目錄(如圖:)
如圖進(jìn)入java jdk的bin目錄后,輸入:
keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore -alias android.keystore 回車
然后接下來就是按照提示輸入(如圖:)
完成上面的步驟后, 該 .keystore文件就已經(jīng)生成了, 在 bin目錄下
說明: android.keystore 是.keystore文件的名稱, 這里可以根據(jù)需要設(shè)定,
-validity 是該文件的有效期時(shí)間
密鑰口令就是以后簽名時(shí)需要填寫的Password
注意: 如果生成不成功,可能是因?yàn)闆]有管理員權(quán)限,用需要以管理員身份生成.keystore文件
b.使用Eclipse 來生成一個(gè)keysotre文件
1. 在eclipse中 選擇一個(gè)Android 工程, 然后"右鍵" -- Android Tools --Export Signed Application Package--Create new keystore
說明:上圖的Location是要生成的keystore文件的位置,Password是keystore文件的密鑰
2.接下來還是和命令提示符里一樣的填寫相關(guān)信息
注意: 一定要記住輸入的密碼
想要使用高德地圖就必須要申請(qǐng)一個(gè)KEY,這沒有原因,這就是高德硬性規(guī)定的。
現(xiàn)在我就用最通俗的語言,最嚴(yán)謹(jǐn)?shù)乃悸犯蠹乙黄鹛骄吭趺传@取這個(gè)鑰匙,以及相關(guān)的注意事項(xiàng)
step
1、
當(dāng)然是先申請(qǐng)成為高德開發(fā)者了(省略......這都不會(huì)那真是可以右轉(zhuǎn)德瑪西亞了)
step
2、進(jìn)入到自己的賬號(hào)呢,右上角會(huì)有一個(gè)控制臺(tái)的小按鈕,點(diǎn)擊進(jìn)入控制臺(tái)。中間有個(gè)獲取KEY有木有?!好了,本課程到此結(jié)束,謝謝觀賞
step
3、當(dāng)你點(diǎn)擊【獲取KEY】之后就會(huì)出現(xiàn)一下界面了,依次輸入應(yīng)用名稱、綁定的服務(wù)、同意使用條款。
step
4、當(dāng)點(diǎn)擊到綁定服務(wù)就會(huì)出現(xiàn)上面這個(gè)界面,輸入發(fā)布版的安全碼、調(diào)試版的安全碼和package,package很簡(jiǎn)單就是manifest里面的package,但是SHA1是個(gè)什么鬼?該怎么獲取呢?
step
5、獲取SHA1之Eclipse和AS通用方法:【點(diǎn)這里】,其中需要注意的是:在發(fā)布正式版本的時(shí)候要把自己生成的簽名key放在C:\Users\Administrator\.android
下才可以
使用命令行即可。
復(fù)制代碼
cd C:\Android\
"C:\Program Files\Java\jdk1.6.0_16\bin\keytool.exe" -genkey -v -keystore android-release-key.keystore -alias androidreleasekey -keyalg RSA --validity 10000
回答以下問題
復(fù)制代碼
Enter keystore password: -- 設(shè)置keystore密碼-必須至少6個(gè)字符
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]: -- 城市
What is the name of your State or Province?
[Unknown]: -- 省份
What is the two-letter country code for this unit?
[Unknown]: CN -- 國(guó)家
Is CN=ipod4g, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN correct?
[no]: yes -- 輸入 yes 確認(rèn)
Generating 1,024 bit RSA key pair and self-signed certificate (SHA1withRSA) with a validity of 10,000 days
for: CN=ipod4g, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN
Enter key password for
(RETURN if same as keystore password): -- 設(shè)置key密碼,如與keystore密碼相同,回車
[Storing android-release-key.keystore]
android key
安卓鍵
雙語例句
1
Firstly, further analysis of Android system architecture and platform features, and then to introduce Android system constitute key concepts such as Activity, intent and so on.
本文首先深入分析Android系統(tǒng)的平臺(tái)特征和體系結(jié)構(gòu),詳盡地介紹Android系統(tǒng)程序構(gòu)成中的關(guān)鍵概念如Activity、Intent等。
查看Androidkeystore信息方法如下:1、打開CMD命令行進(jìn)入本機(jī)安裝的jdk或jre下的bin目錄.2、命令行輸入:keytool-list-v-keystoreC:\Users\Desktop\browser\debug.keystore-storepassandroid3、這里查看的是androidadt默認(rèn)帶的debug版keystore,密碼是:android
網(wǎng)站標(biāo)題:androidkey,Android可以用java開發(fā)嗎
URL地址:http://www.rwnh.cn/article26/dssdgjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、外貿(mào)網(wǎng)站建設(shè)、微信公眾號(hào)、網(wǎng)站制作、做網(wǎng)站、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)