使用 android 密钥库中的私有证书加密数据
Encrypt data using private certificate inside android keystore
我在通过 Rest 发送数据之前使用证书文件加密数据 API。目前,我将其保存在 assets
文件夹中。
我将证书放在我用来签署 APK 的密钥库文件中。
keytool -import -keystore certificate.pfx -file CertificateFile.cer
现在密钥库包含证书及其显示的列表。
>keytool -list -keystore Certificate.pfx
Enter keystore password:
Keystore type: JKS
Keystore provider: SUN
Your Keystore contains 2 entries
signingkey, Jun 19, 2015, PrivateKeyEntry,
Certificate fingerprint (SHA1): 83:C7:A9:D2:F9:80:C3:6B:16:49:FA:86:FC:18:D5:D5:
26:39:16:12
mykey, Apr 22, 2016, trustedCertEntry,
Certificate fingerprint (SHA1): E9:85:A6:8B:8A:51:89:6D:EA:BA:B8:3A:25:BB:89:34:
1F:5A:BA:5E
但是枚举 Keystore 的大小始终为零,并且找不到别名。
keyStore = KeyStore.getInstance("AndroidKeyStore");
keyStore.load(null);
keyStore.aliases();
您混淆了听起来相似但完全不同的术语:
一个 (Java) "keystore" 驻留在您的计算机上,用于签署您的应用程序。这是一个简单的密码保护文件。
另一个是设备上的 "AndroidKeyStore" 服务。此服务是一项特殊服务,可为应用程序提供在 Android 操作系统的受保护部分中创建和存储其私钥的能力。只有创建了密钥的应用程序才能稍后 access/use 密钥。 "AndroidKeyStore" 通常以包含硬件保护功能的特殊方式受到保护。
我在通过 Rest 发送数据之前使用证书文件加密数据 API。目前,我将其保存在 assets
文件夹中。
我将证书放在我用来签署 APK 的密钥库文件中。
keytool -import -keystore certificate.pfx -file CertificateFile.cer
现在密钥库包含证书及其显示的列表。
>keytool -list -keystore Certificate.pfx
Enter keystore password:
Keystore type: JKS
Keystore provider: SUN
Your Keystore contains 2 entries
signingkey, Jun 19, 2015, PrivateKeyEntry,
Certificate fingerprint (SHA1): 83:C7:A9:D2:F9:80:C3:6B:16:49:FA:86:FC:18:D5:D5:
26:39:16:12
mykey, Apr 22, 2016, trustedCertEntry,
Certificate fingerprint (SHA1): E9:85:A6:8B:8A:51:89:6D:EA:BA:B8:3A:25:BB:89:34:
1F:5A:BA:5E
但是枚举 Keystore 的大小始终为零,并且找不到别名。
keyStore = KeyStore.getInstance("AndroidKeyStore");
keyStore.load(null);
keyStore.aliases();
您混淆了听起来相似但完全不同的术语:
一个 (Java) "keystore" 驻留在您的计算机上,用于签署您的应用程序。这是一个简单的密码保护文件。
另一个是设备上的 "AndroidKeyStore" 服务。此服务是一项特殊服务,可为应用程序提供在 Android 操作系统的受保护部分中创建和存储其私钥的能力。只有创建了密钥的应用程序才能稍后 access/use 密钥。 "AndroidKeyStore" 通常以包含硬件保护功能的特殊方式受到保护。