
Android
Javaimport Android.security.keystore.KeyGenParameterSpec;import Android.security.keystore.KeyProperties;import Java.security.KeyStore;import Java.security.KeyPAIr;import Java.security.KeyPAIrGenerator;import Java.security.PrivateKey;import Java.security.PublicKey;public class KeyStoreExample { private static final String Android_KEYSTORE = "AndroidKeyStore"; private static final String KEY_ALIAS = "MyKeyAlias"; public void storeCredentials(String username, String password) { try { KeyStore keyStore = KeyStore.getInstance(Android_KEYSTORE); keyStore.load(null); if (!keyStore.contAInsAlias(KEY_ALIAS)) { KeyPAIrGenerator keyPAIrGenerator = KeyPAIrGenerator.getInstance( KeyProperties.KEY_ALGORITHM_RSA, Android_KEYSTORE); KeyGenParameterSpec.Builder builder = new KeyGenParameterSpec.Builder( KEY_ALIAS, KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT) .setDigests(KeyProperties.DIGEST_SHA256) .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_RSA_PKCS1); keyPAIrGenerator.initialize(builder.build()); KeyPAIr keyPAIr = keyPAIrGenerator.generateKeyPAIr(); PublicKey publicKey = keyPAIr.getPublic(); PrivateKey privateKey = keyPAIr.getPrivate(); // Store the credentials in KeyStore keyStore.setEntry(KEY_ALIAS, new KeyStore.PrivateKeyEntry(privateKey, new Certificate[0])); } // Encrypt and store the username and password // ... } catch (Exception e) { e.printStackTrace(); } } public String getcredentials() { try { KeyStore keyStore = KeyStore.getInstance(Android_KEYSTORE); keyStore.load(null); if (keyStore.contAInsAlias(KEY_ALIAS)) { KeyStore.Entry entry = keyStore.getEntry(KEY_ALIAS, null); // Decrypt and retrieve the username and password // ... return credentials; } } catch (Exception e) { e.printStackTrace(); } return null; }}在上述示例代码中,我们首先获取一个 Android KeyStore 实例,并检查是否已经存在指定的密钥对。如果不存在,则使用 KeyPAIrGenerator 生成一个新的密钥对,并将其存储在 KeyStore 中。然后,我们可以使用存储的私钥进行加密,将用户凭据存储在应用的其他存储区域中。当需要获取用户凭据时,我们可以从 KeyStore 中获取存储的私钥,并使用私钥进行解密,获取原始的用户名和密码。Android KeyStore 是 Android 上类似 IOS 钥匙串的用户凭据存储解决方案。它提供了硬件级别的安全保护、安全的密钥生成和存储、强大的加密功能以及用户可见性和用户控制。开发者可以使用 Android KeyStore 来安全地存储和获取用户凭据,保护用户的敏感信息免受攻击。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号