You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 31:Pixel3导入RSA私钥报InvalidKeyException原因咨询

问题描述

开发一款处理RSA密钥的Android程序,2048位私钥从字节数组导入(非设备生成)。在Android Studio模拟器API 31环境下该密钥可正常使用,但在API 31的Pixel3真机上抛出异常,设备及异常信息如下:

设备信息

  • Brand: google
  • Device: blueline
  • Model: Pixel 3
  • ID: SP1A.210812.016.C2
  • Product: blueline

系统版本

  • Android SDK: 31
  • Android release: 12
  • Android incremental: 8618562

异常栈追踪

03-22 22:46:03.611 23770 23770 W System.err: java.security.InvalidKeyException: Size of key not known
03-22 22:46:03.611 23770 23770 W System.err: at android.security.keystore2.AndroidKeyStoreRSACipherSpi.initKey(AndroidKeyStoreRSACipherSpi.java:451)
03-22 22:46:03.611 23770 23770 W System.err: at android.security.keystore2.AndroidKeyStoreCipherSpiBase.init(AndroidKeyStoreCipherSpiBase.java:256)
03-22 22:46:03.611 23770 23770 W System.err: at android.security.keystore2.AndroidKeyStoreCipherSpiBase.engineInit(AndroidKeyStoreCipherSpiBase.java:168)
03-22 22:46:03.611 23770 23770 W System.err: at javax.crypto.Cipher.tryTransformWithProvider(Cipher.java:2985)
03-22 22:46:03.611 23770 23770 W System.err: at javax.crypto.Cipher.tryCombinations(Cipher.java:2892)
03-22 22:46:03.611 23770 23770 W System.err: at javax.crypto.Cipher$SpiAndProviderUpdater.updateAndGetSpiAndProvider(Cipher.java:2797)
03-22 22:46:03.611 23770 23770 W System.err: at javax.crypto.Cipher.chooseProvider(Cipher.java:774)
03-22 22:46:03.611 23770 23770 W System.err: at javax.crypto.Cipher.init(Cipher.java:1144)
03-22 22:46:03.611 23770 23770 W System.err: at javax.crypto.Cipher.init(Cipher.java:1085)
异常原因分析
  1. Keystore2的严格限制:Android 12(API31)默认使用Keystore2作为密钥存储实现,真机上的Keystore2对非自身生成的密钥有严格的元数据要求。外部导入的私钥没有被Keystore2框架标记密钥长度等关键元数据,导致初始化Cipher时无法识别密钥大小。
  2. 模拟器与真机的实现差异:模拟器的Keystore做了兼容处理,允许直接使用外部导入的密钥;而真机的Keystore2遵循更严格的安全规范,仅支持自身生成或携带完整元数据导入的密钥。
  3. 密钥导入方式的问题:如果导入私钥时仅通过KeyFactory转换为PrivateKey对象,未关联Keystore的属性信息,Keystore2无法获取密钥的关键参数(如长度),从而触发异常。

内容的提问来源于stack exchange,提问作者stud0709

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 09:35:27