Tag: android keystore

Android保存RSA私钥和公钥

我需要保存我的RSA私钥和公钥。 我在这里创造它。 KeyPairGenerator kpg = KeyPairGenerator.getInstance(“RSA”); kpg.initialize(1024); KeyPair kp = kpg.genKeyPair(); publicKey = kp.getPublic(); privateKey = kp.getPrivate(); 现在我想下次使用这两个键。 所以它们应该存储在设备上。 byte[] publicKeyBytes = publicKey.getEncoded(); byte[] privateKeyBytes = privateKey.getEncoded(); 所以我可以获得字节数组,然后将它们保存为文本文件。 然后下次我读它并将其转换回字节数组。 现在我的问题:如何将字节数组转换回键? 这不起作用: KeyFactory keyFactory = KeyFactory.getInstance(“RSA”); X509EncodedKeySpec spec = new X509EncodedKeySpec(publicKeyBytes); publicKey = keyFactory.generatePublic(spec); spec = new X509EncodedKeySpec(privateKeyBytes); privateKey = keyFactory.generatePrivate(spec); 在LogCat上,这将显示: 必须使用RSAPublicKeySpec或PKCS8EncodedKeySpec; 是java.security.spec.X509EncodedKeySpec 这个代码有什么问题吗? 谢谢你的帮助。

初始化FingerpringManager.Crypto对象,得到没有AndroidKeyStore提供程序支持的Crypto原语?

我正在使用Android FingerPrintManager API并使用KeyPairGenerator创建密钥对,我想使用公钥加密密码,然后通过委托fingerPrint对用户进行身份validation进行解密,但是一旦我运行我的项目就会崩溃并给出 引起:java.lang.IllegalArgumentException:没有AndroidKeyStore提供者支持的Crypto原语 我从这里使用了代码: Android指纹API加密和解密这篇文章说他能够进行ecryption和解密,并且遵循相同的代码和步骤。 这是我的代码 public KeyStore getKeyStore() { try { return KeyStore.getInstance(“AndroidKeyStore”); } catch (KeyStoreException exception) { throw new RuntimeException(“Failed to get an instance of KeyStore”, exception); } } public KeyPairGenerator getKeyPairGenerator() { try { return KeyPairGenerator.getInstance(“RSA”, “AndroidKeyStore”); } catch (NoSuchAlgorithmException | NoSuchProviderException exception) { throw new RuntimeException(“Failed to get an instance […]

如何初始化Keystore

这个我的代码用于使用密钥库将任意文本保存为密钥库中的密钥我如何得到“密钥库未初始化错误”,如何初始化密钥库? public void secretKeyGeneration(View view) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException { KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); byte[] sek = “eru9tyighw34ilty348934i34uiq34q34ri”.getBytes(); SecretKey sk = new SecretKeySpec(sek, 0, sek.length, “AES”); char[] password = “keystorepassword”.toCharArray(); KeyStore.ProtectionParameter protParam = new KeyStore.PasswordProtection(password); KeyStore.SecretKeyEntry skEntry = new KeyStore.SecretKeyEntry(sk); ks.setEntry(“secretKeyAlias”, skEntry, protParam); }

将多个SSL证书固定添加到Android KeyStore不起作用。 (来自资源文件)

我想将多个证书从Resource文件添加到Android KeyStore: if (sslContext==null) { // loading CA from an InputStream InputStream is = AVApplication.getContext().getResources().openRawResource(R.raw.wildcard); String certificates = Converter.convertStreamToString(is); String certificateArray[] = certificates.split(“—–BEGIN CERTIFICATE—–“); for (int i = 1; i < certificateArray.length; i++) { certificateArray[i] = "—–BEGIN CERTIFICATE—–" + certificateArray[i]; //LogAV.d("cert:" + certificateArray[i]); // generate input stream for certificate factory InputStream stream = IOUtils.toInputStream(certificateArray[i]); // […]

密钥库密码恢复android

我的客户端只共享密钥库。 他没有密码。 其他人已经发布了在游戏商店和客户端上的apk无法与他联系。 应用程序包含超过7.5万用户在谷歌播放。 所以现在我们需要恢复密码。 我使用过蛮力机制。 但我没有任何关于密码的线索所以蛮力似乎不起作用。我们不想发布新的应用程序。 我们需要更新应用程序。 有没有办法在不知道旧密码的情况下重置密码? 我在蛮力的帮助下尝试过排列,但没有取得成功。 有人可以帮忙吗? 我搜索过每一件事只有蛮力机制可用,但它有提示。 但我没有任何暗示 谢谢。

通过cli运行时找不到AndroidKeyStore实现

我有一个使用Android Keystore API的java程序。 我们正在运行这个prog(作为Java编程而不是android应用程序)在基于android的板上使用加密操作。 通过android studio运行这个程序工作正常,即创建一个示例应用程序(内部使用通过AndroidKeystore securitye Provider的密钥库API)并安装该apk。 但是我们需要通过命令行运行这个程序,因为实际的程序不会是apk格式。 看起来安全提供程序AndroidKeyStore仅在使用应用程序运行时工作,但不能通过命令行运行。 尝试以下方式: 1)通过javac编译prog,创建jar然后转换为dex以运行cli 2)从android studio创建jar,然后转换为dex以运行cli 3)Android应用程序正在仿真器和板上工作, 126|u0_a82@msm8916_64:/data/data/berserker.android.apps.sshdroid/home $ dalvikvm -cp apiclient.dex com.example.test_jar.ApiClientAndr> in api client main java.security.KeyStoreException: java.security.NoSuchAlgorithmException: KeyStore AndroidKeyStore implementation not found at java.security.KeyStore.getInstance(KeyStore.java:119) at com.example.test_jar.ApiClientAndroidKeyStore.main(ApiClientAndroidKeyStore.java:279) Caused by: java.security.NoSuchAlgorithmException: KeyStore AndroidKeyStore implementation not found at org.apache.harmony.security.fortress.Engine.notFound(Engine.java:190) at org.apache.harmony.security.fortress.Engine.getInstance(Engine.java:139) at java.security.KeyStore.getInstance(KeyStore.java:116) … 1 more 以下是安全提供商列表 1)在仿真器/板上运行时 […]