# CodelabKeyStore **Repository Path**: qthy/codelab-key-store ## Basic Information - **Project Name**: CodelabKeyStore - **Description**: Android KeyStore 存储密钥 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-04-23 - **Last Updated**: 2023-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: Android, keystore ## README android 8.1 keystore 存储位置:/data/misc/keystore/user_0/ 正常生成密钥时会生成两个文件,分别存储证书和密钥(其中 'qthy' 是别名): * /data/misc/keystore/user_0/10088_USRCERT_qthy * /data/misc/keystore/user_0/10088_USRPKEY_qthy 异常问题: 生成密钥时异常断电,只生成 USRPKEY 文件,此时alias是能获取到的, /data/misc/keystore/user_0/10088_USRPKEY_qthy 但是获取密钥时会抛出以下异常, ~~~ java.lang.NullPointerException: invalid null input at java.security.KeyStore$PrivateKeyEntry.(KeyStore.java:559) at java.security.KeyStore$PrivateKeyEntry.(KeyStore.java:526) at java.security.KeyStoreSpi.engineGetEntry(KeyStoreSpi.java:485) at java.security.KeyStore.getEntry(KeyStore.java:1560) at com.example.codelabkeystore.KeyStoreUtils.encryptRSA(KeyStoreUtils.java:104) at com.example.codelabkeystore.KeyStoreUtils.encryptRSAToString(KeyStoreUtils.java:92) at com.example.codelabkeystore.MainActivity.onCreate$lambda$3$lambda$2(MainActivity.kt:26) at com.example.codelabkeystore.MainActivity.$r8$lambda$lbZXsiUVuWLPNV0pruOhx4PlqTg(Unknown Source:0) at com.example.codelabkeystore.MainActivity$$ExternalSyntheticLambda6.run(Unknown Source:6) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at java.lang.Thread.run(Thread.java:764) ~~~