Android Keymaster 是一種用于加密和解密數據的 Android API,它允許應用程序生成、存儲和管理密鑰
dependencies {
implementation 'androidx.security:security-keymaster:3.0.0'
}
KeymasterManager keymasterManager = (KeymasterManager) getSystemService(Context.KEYMASTER_SERVICE);
KeyGenParameterSpec keyGenParameterSpec = new KeyGenParameterSpec.Builder(
KEY_NAME, KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)
.setDigests(KeyProperties.DIGEST_SHA256, KeyProperties.DIGEST_SHA512)
.setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_RSA_OAEP)
.setUserAuthenticationRequired(true)
.build();
KeymasterManager.KeyGenerationResult result = keymasterManager.generateKey(keyGenParameterSpec);
byte[] keyImportData = ...; // 從某個來源獲取密鑰數據
keymasterManager.importKey(keyImportData, null, KEY_NAME);
KeymasterKey keymasterKey = result.getKey();
// 加密
byte[] plaintext = ...; // 要加密的數據
byte[] ciphertext = keymasterManager.encrypt(keymasterKey, plaintext, null);
// 解密
byte[] decryptedText = keymasterManager.decrypt(keymasterKey, ciphertext, null);
keymasterManager.deleteKey(KEY_NAME);
請注意,這些示例代碼僅作為參考,實際實現可能需要根據您的需求進行調整。在使用 Keymaster 時,請確保遵循最佳安全實踐,以保護您的密鑰和敏感數據。