古詩詞大全網 - 個性簽名 - Android密鑰庫系統KeyStore

Android密鑰庫系統KeyStore

利用 Android 密鑰庫系統,您可以在容器中存儲加密密鑰,從而提高從設備中提取密鑰的難度。在密鑰進入密鑰庫後,可以將它們用於加密操作,而密鑰材料仍不可導出。此外,它提供了密鑰使用的時間和方式限制措施,例如要求進行用戶身份驗證才能使用密鑰,或者限制為只能在某些加密模式中使用。

密鑰庫系統並不是讓程序直接進行存儲程序的私密信息的,比如說用戶賬號密碼,其提供了壹個密鑰安全容器,保護密鑰材料免遭未經授權的使用,壹個應用程序可以在密鑰庫中存儲多個密鑰並且只允許應用自身訪問,應用程序可以在密鑰庫系統中生成,存儲,獲取存儲其中的公鑰或者私鑰,因此可使用密鑰庫系統中的密鑰來進行數據的加密。

密鑰庫系統由 KeyChain API 以及在 Android 4.3(API 級別 18)中引入的 Android 密鑰庫提供程序功能使用。

安卓系統提供了下面幾種KeyStore類型:

各種類型的詳細說明可以參考: /openjdk-redirect.html?v=8&path=/technotes/guides/security/StandardNames.html#KeyStore

先創建壹個Activity,自定義布局從頁面上來實現幾種功能

效果圖:

說明:

1.輸入框輸入要增加的密鑰的名稱,點擊添加按鈕進行添加壹個新密鑰;

2.輸入框輸入要刪除的密鑰的名稱,點擊刪除按鈕進行刪除壹個已存在的密鑰;

3.這裏指定了數據明文,點擊密鑰列表中的item可選中指定的密鑰,用於使用密鑰進行加密和解密,選中密鑰後,可點擊加密按鈕進行加密,加密後可點擊解密按鈕進行解密;

4.密鑰列表顯示當前應用在密鑰庫系統中生成了的密鑰,長按可刪除密鑰;

MainActivity

密鑰庫系統工具類

生成密鑰時使用X500Principal指定了自簽署證書,參數分別代表

CN:通用名稱

O:組織

OU:組織單元

C:國家

並且指定密鑰的有效時間,並且指定了用於生成密鑰對的自簽名證書的序列號。

這裏指定了通過密鑰庫系統生成RSA密鑰。

先從密鑰庫中取出密鑰,使用公鑰進行加密

先從密鑰庫中取出密鑰,使用私鑰進行解密

使用密鑰對數據簽名,簽名算法須與秘鑰算法保持壹致。

使用密鑰對數據進行簽名認證,簽名算法須與秘鑰算法保持壹致。

密鑰庫支持的算法可參考: /training/articles/keystore

demo鏈接: /samlss/KeyStore