Articles of android keystore

Android Keystore系统如何安全?

我在http://developer.android.com/training/articles/keystore.html上阅读了Android文档但是我遗漏了一些细节…… 如果应用程序使用AndroidKeyStore生成密钥(对称或非对称)。 我们可以从该密钥库中提取密钥吗? 另一个应用程序(AppB)可以访问AppA生成的密钥吗? 在哪种情况下,我们可能会松开钥匙? 设备出厂仅重置? 谢谢。

如何为Google Play生成“密钥库”?

我正在尝试找出将应用上传到Google Play的拜占庭流程。 我正在使用Phonegap的Applaud系统来生成我的应用程序,为了让我创建一个“发布版本”,我需要生成一个“Keystore”。 但是,当我查看Google自己的发布清单时 ,没有关于“密钥库”的内容。 我在Stack Overflow上find了这个答案来生成一个“Keystore”,理论上它应该适用于Ubuntu,这就是我正在使用的: keytool –genkey –v –keystore just2try.keystore –alias someKindOfName –keyalg RSA –validity 10000 首先,我应该把它放在哪里说someKindOfName ? 我的应用程序的名称? 在任何情况下,当我运行它时,我得到这个回应: keytool error: java.lang.RuntimeException: Usage error, –genkey is not a legal command 我用Google搜索了解决方案,但我发现的唯一解决方案是Windows。 有人可以提供或指向一个稍微用户友好的分步指南来生成我应该拥有的这个“Keystore”的东西吗? 一个有Ubuntu / Linux的工作命令?

我的应用中的Google地图不可见

当我启动我的应用程序时,我收到以下错误: V/GoogleSignatureVerifier(4962): com.myapp.application signature not valid. Found: V/GoogleSignatureVerifier(4962): MIIDDTCCAfWgAwIBAgIEO0I8qTANBgkqhkiG9w0BAQsFADA3MQswCQYDVQQGEwJVUzEQMA4GA1UE V/GoogleSignatureVerifier(4962): ChMHQW5kcm9pZDEWMBQGA1UEAxMNQW5kcm9pZCBEZWJ1ZzAeFw0xNTA0MjEyMDM4NDRaFw00NTA0 V/GoogleSignatureVerifier(4962): MTMyMDM4NDRaMDcxCzAJBgNVBAYTAlVTMRAwDgYDVQQKEwdBbmRyb2lkMRYwFAYDVQQDEw1BbmRy V/GoogleSignatureVerifier(4962): b2lkIERlYnVnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn/4shkSGhYP1pwMY4bFc V/GoogleSignatureVerifier(4962): dKuMg6JyTdUON6XF8VxifADMYd/WwgzsETT+AHZXlo6RwQFhtwbxrvmuhBOMip2ivhmRGT8JpBcI V/GoogleSignatureVerifier(4962): FqjCOxLzw3B3psZhnioZwCBTKBrCau8/q0XW40lXa/OCy2wA4EZs2ThaqwqgdGwpKXN+qHNHAFAS V/GoogleSignatureVerifier(4962): 0g/SdupsSID+WctlL2XdCo50Jq/bJJAWQBz1SL03xBWUikuiWKM6mz/6Up8oE4WtZhU7V83R7FYM V/GoogleSignatureVerifier(4962): XmRU4CghlvczG+ujCrZwSsYttsZgz2nb4NY2w9fvevAXgSB/N6JfOatnccW5vmukkm6g12iysA9u V/GoogleSignatureVerifier(4962): hS3EjVb01bKyMdoXhQIDAQABoyEwHzAdBgNVHQ4EFgQUByeU0uE1tXyrL0UimKkJH2CbeXIwDQYJ V/GoogleSignatureVerifier(4962): KoZIhvcNAQELBQADggEBABPPel3zEbk6/ZzwfvIS0z8IqvYgzxzxSZFEAp+PrlEEyk+IVHQgQAVS V/GoogleSignatureVerifier(4962): I6JM9rNkxR2hvQHP3V9pd2d5bYhsCBZFSn6drOmnBrnABXH8e4OdqN9fRcKn+acfbZ+yBvZoVbr/ V/GoogleSignatureVerifier(4962): IhRvRrpLDtDNnD4kUoLfTgw/Xygdiq5/aU5WSfXdrUx6Va0vg6uJZY6Yq4J4a/R+/T7lLwzQgerq V/GoogleSignatureVerifier(4962): eNUvY9HbcmegJDKMGeyc4Po8akAt9gDRo4nswuP0Sve8oSMqBEfO8ItTsIPx3UVEXuYUeC8e8nwb V/GoogleSignatureVerifier(4962): fyhDXSFAo59Y1+NWcZNsGdum95YV8oZloF7+4fFqBwz7w0mb+M+JfY1sg7I= 我已经读过debug.keystore默认密钥只有1年的有效期,所以必须先删除它才能让android studio生成一个新的。 最终我做到了,但错误仍然存​​在。 此举后,我的应用程序中的Google地图不再可见… 如果可以的话请帮忙。

使用现有密钥库导出已签名的Android应用程序时出现“错误:无法恢复密钥”

我有一个现有的密钥库,其中包含密码和几个密码,其中包含我已导出并上传到Google Play的不同应用的不同密码。 现在我最近导入了应用程序的一个项目,对它进行了一些重大修改,我试图使用相同的密钥库导出它,并选择与我最初创建时相同的别名/密码。 问题是,在我选择密钥别名并输入密钥密码的步骤后,我看到“ ERROR:无法恢复密钥 ”。 我怀疑我可能输入了错误的密钥密码(请注意密钥库密码是正确的密码,因此这不是问题的原因)。 我尝试创建新别名并在其下导出应用,但Google Play不会接受此文件,除非使用相同的证书进行签名。 除了试图暴力破解密钥密码外,我真的不知道如何继续这种情况。 如果您认为这是唯一的路径,您是否知道密钥库中的密钥有一个很好的powershell破解工具,我已经知道密码了? 密钥库是一个.reg文件,使用Eclipse的Export向导创建。

如何在eclipse for android中设置自定义密钥库以进行调试

我有一个自定义密钥库,我用它来签署我的apk。 现在我想使用相同的密钥库进行调试。 当我去eclipse-> windows-> preferences-> android-> build并设置我的自定义密钥库时,我得到“Keystore被篡改,或密码不正确”?

如何防止泄露密钥库和密码的使用?

问题 密钥库及其密码用于签署应用程序,然后由Android用于识别开发人员。 如果泄露,有人可以代表我们更新相关的应用程序。 即使该人无法访问我们的Playstore帐户, 他们仍然可以将其发布到其他地方 。 我们到处都看到, “永远不会失去它” , “永远不会泄漏它” ,等等。但是,如果我做了什么呢? 当他们(密钥库和密码)泄漏时我无法find所需的步骤,因此我可以保护我们的用户和我们的应用程序。 题 即使我使用其他appid发布相同的应用程序, 如何保护仍旧旧用户? 这里有一些最好的做法吗?

无法在Android密钥库中生成密钥

我们目前遇到的问题是,当用户安装我们的应用程序时,应用程序尝试访问并在密钥库中生成密钥,但密钥库会抛出此exception: Caused by: java.lang.IllegalStateException: could not generate key in keystore at android.security.AndroidKeyPairGenerator.generateKeyPair(AndroidKeyPairGenerator.java:100) at java.security.KeyPairGenerator$KeyPairGeneratorImpl.generateKeyPair(KeyPairGenerator.java:275) 我们认为它与手机上的解锁模式有关,无法解锁密钥库,和/或设备管理员锁定密钥库。 这是密钥库的创建方式以及密钥的生成方式: public SecretKeyWrapper(Context context, String alias) throws GeneralSecurityException, IOException { mCipher = Cipher.getInstance(“RSA/ECB/PKCS1Padding”); final KeyStore keyStore = KeyStore.getInstance(“AndroidKeyStore”); keyStore.load(null); if (!keyStore.containsAlias(alias)) { generateKeyPair(context, alias); } final KeyStore.PrivateKeyEntry entry = (KeyStore.PrivateKeyEntry) keyStore.getEntry(alias, null); mPair = new KeyPair(entry.getCertificate().getPublicKey(), entry.getPrivateKey()); } private static […]

检索私钥时,链为空

我正在使用我存储在Android密钥库中的RSA密钥对加密我的应用程序中的数据。 我一直在Play商店看到NullPointerException ,但我无法重现它们: java.lang.NullPointerException: chain == null at java.security.KeyStore$PrivateKeyEntry.(KeyStore.java:1205) at java.security.KeyStoreSpi.engineGetEntry(KeyStoreSpi.java:374) at java.security.KeyStore.getEntry(KeyStore.java:644) at MyClass.getKeyStoreEntry(MyClass.java:111) 创建密钥对的源代码 Calendar start = Calendar.getInstance(); start.setTimeInMillis(0); Calendar end = Calendar.getInstance(); end.set(Calendar.YEAR, 3000); KeyPairGeneratorSpec.Builder keySpecBuilder = new KeyPairGeneratorSpec.Builder(context) .setAlias(keyName) .setSubject(new X500Principal(“CN=” + keyName)) .setSerialNumber(BigInteger.TEN) .setStartDate(start.getTime()) .setEndDate(end.getTime()) .setKeySize(RSA_KEY_SIZE); KeyPairGeneratorSpec spec = keySpecBuilder.build(); KeyPairGenerator gen = KeyPairGenerator.getInstance(“RSA”, “AndroidKeyStore”); gen.initialize(spec); gen.generateKeyPair(); 然后检索密钥: private KeyStore.PrivateKeyEntry […]

在Android M和旧版本中使用KeyStore加密和解密用户名?

我正在尝试使用KeyStore在应用程序中加密和解密用户名, 使用KeyPairGeneratorSpec在旧版本中创建密钥,如18到22, KeyPairGeneratorSpec已经在Android M的第23版中进行了描述,但是Android M支持KeyGenParameterSpec。 此KeyGenParameterSpec是否支持向后兼容性或我如何执行此操作? 我尝试了这样的事情,有没有更好的解决方案。 现在工作正常! 在加密和解密的Ciper.getInstance时我需要这样做。 是否有任何单个参数“RSA / ECB / OAEPWithSHA-256AndMGF1Padding”或“RSA / ECB / PKCS1Padding”我可以同时传递这两个版本 ? if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M){ c = Cipher.getInstance(“RSA/ECB/OAEPWithSHA-256AndMGF1Padding”); }else{ c = Cipher.getInstance(“RSA/ECB/PKCS1Padding”); } 下面的代码现在运行正常,请告诉我如何改进它。 密钥生成器: genkey(){ KeyPairGenerator generator = KeyPairGenerator .getInstance(KeyProperties.KEY_ALGORITHM_RSA, “AndroidKeyStore”); if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M){ TCLog.e(TAG,”Current version is 23(MashMello)”); //Api level 23 KeyGenParameterSpec spec = new KeyGenParameterSpec.Builder( keyName, […]

密钥库文件D \ Telegram-master \ TMessagesProj \ config \ release.keystore找不到签名config'debug'

我下载了电报的新版本。 运行时,这个错误显示: Keystore file D\Telegram-master\TMessagesProj\config\release.keystore not found for signing config 'debug'. 如何解决?