Articles of android keystore

Android:错误 – 应用程序具有相同的打包不同签名

我正在解决android studio所说的问题 Installation failed since the device has an application with the same package but a different signature. . . .. 这是正确的,因为我最近签署了一个APK并上传到我的Play开发者控制台的测试版区域。 现在我尝试在本地调试它,默认情况下我相信所有的Android项目都是由调试密钥库签名的,因此签名会有所不同。 处理这个问题的最佳方法是什么? 是否可以使用我的发布密钥签署我的调试版本,这是否存在潜在的危险? 如何强制使用我的发布密钥库签署调试版本而不会失去调试能力等? 或者我应该继续卸载并重新安装不同的版本 – 这似乎是最糟糕的解决方法。 🙂

Android密钥库密码更改

我想更改我在密钥库中使用的密码,用于谷歌播放中已有的Android应用程序,我想在做之前了解一些事情: 1)如果我更改了密钥库密码,我是否可以继续使用相同的密钥库来存储我上传的应用程序(我需要这样做,这就是我要问的原因) 2)更改我的别名密码会产生同样的后果吗? 3)我应该如何使用keytool?

密钥库格式无效

我最近更新了一个应用程序到市场,我生成了密钥库和相应的密码。 现在我更新了应用程序,并打算在市场上更新它,我已经在媒体上发布了相同的QR码,而我尝试签署我的新APK我继续收到错误“无效的密钥库格式”的选项“使用现有的密钥库“。 无法确定我哪里出错了。 这是截图:

在没有ProtectionParameter的情况下在KeyStore中存储密钥

到目前为止,我已经习惯使用以下代码将我的应用程序机密存储到KeyStore : // creating a instance KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); // generating a secret key SecretKey secretKey = KeyGenerator.getInstance(“AES”).generateKey(); // store the secret key KeyStore.Entry keyStoreEntry = new KeyStore.SecretKeyEntry(secretKey); ProtectionParameter keyPassword = new PasswordProtection(“myPassword”.toCharArray()); keyStore.setEntry(“mySecretKey”, keyStoreEntry, keyPassword); 根据API 14+中的此Stackoverflowpost , KeyStore凭据存储受设备解锁密码保护,因此不需要ProtectionParameter 。 但是如何在不提供第三个参数的情况下设置KeyStore条目?

Android Studio – Keystore被篡改,或者在升级到2.1.2版本后密码不正确

最近我将Android Studio升级到最新的稳定版本2.1.2(Win 10,Java 1.8.0_45)和我现在遇到的问题,当我尝试构建签名的应用程序时 Keystore was tampered with, or password was incorrect 如果我尝试列出密钥库得到这个 $ keytool -list -keystore my-keystore.jks Enter keystore password: Keystore type: JKS Keystore provider: SUN Your keystore contains 1 entry my-keystore, Jul 1, 2016, PrivateKeyEntry, Certificate fingerprint (SHA1): 2E:20:24:85:FF:BD:5A:D2:07:52:75:90:87:85:FD:C7:FB:1A:DA:71 但是在android studio上我想加载key get 无法加载密钥库… 是以某种方式解决这类问题? 我宁愿做一些修复,而不是创建新的密钥库文件并在游戏中更改应用程序。

如何在Android上存储密码

我希望了解Android密钥库,以便在设备上存储密码。 ( https://developer.android.com/training/articles/keystore.html ) 在本文中,它说“使用Android密钥库提供商让个人应用程序存储自己的凭据,只有应用程序本身才能访问。” 这正是我想要的。 所以我认为这将起作用的方式如下:1)我将生成一个RSA密钥 2)将PrivateKey存储在KeyStore中 3)将PublicKey存储在某些SharePref中 4)使用PublicKey加密密码 5)使用PrivateKey加密密码。 但是我觉得我误解了一些东西,因为这篇文章没有显示出来 1)如何将PrivateKey保存到KeyStore(我没有看到任何API显示keystore如何添加密钥) 2)没有说明如何使用PrivateKey解密数据 婴儿为什么这篇文章谈论“在KeyStore中使用PrivateKey来创建一些数据的签名”。 在某些数据上创建签名是什么意思? (我想用PrivateKey解密数据)。 为什么要validation“以前由PrivateKey制作的签名”。 所以我在这一点上迷失了…这篇文章让我在正确的地方开始,但最后我很困惑它想要实现的目标。 有人可以建议我试图做什么根本没有任何意义吗? 或者我应该只在我自己的数据库中保存公钥和私钥? (那里的安全性不是很高,但考虑到在设备上存储密码的要求,我能做到最好)。 非常感谢 Rgds !!!!

在签署Android APK时eclipse中缺少关键别名

我已经创建了一个密钥库,签署了apk并将其发布到Play商店。 现在我已经修复了一些错误,使用相同的密钥库和密码,然后在导出android应用程序向导中单击下一步。 它显示了别名的下拉框,上面没有别名。 但昨天同样的事情对我来说也是有用的,我签了同样的项目,现在看起来很空洞。 我也在命令行上尝试了它,但它说“密钥库被篡改或密码不正确”,但我非常确定密码ID是正确的,密钥库也是如此。 这对我来说是一个表演。 请帮忙!

“错误版本的密钥库”错误。 如何创建version = 1密钥库证书?

我在使用SSL时遇到问题,因为我收到了与我的密钥库相关的以下错误(使用keytool自行创建和自签名: http : //developer.android.com/tools/publishing/app-signing.html ) : 08-14 20:55:23.044:W / System.err(5430):java.io.IOException:密钥库的错误版本。 08-14 20:55:23.060:W / System.err(5430):at org.bouncycastle.jce.provider.JDKKeyStore.engineLoad(JDKKeyStore.java:812)… JDKKeyStore.java类中抛出的错误出现在以下代码中: 来自JDKKeyStore.java的Blockquote: if(version!= STORE_VERSION){if(version!= 0){throw new IOException(“key store的错误版本。”); }} 大段引用 在这种情况下,STORE_VERSION = 1,我的版本= 3基于读取我创建的密钥库所持证书的详细信息。 我不知道如何生成包含version = 1证书的密钥库。 我发现这个答案很有帮助: 在进行https调用时错误的版本密钥库 但是它要求使用以下参数创建密钥库: -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath /path/to/bouncycastle.jar 但是,当我尝试使用以下参数创建keytool(使用Mac上的终端应用程序)时: keytool -genkeypair -v -alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000 -keypass android […]

Play商店中发布的应用无法与Google Maps API和Facebook API进行通信

我使用Android Studio创建了一个已签名的APK,我添加到Google Developer控制台和Facebook控制我的SHA1指纹和我的应用程序中的相对api键。 如果我通过usb上传我签名的apk,一切都运行良好,安装后地图api和facebook api运行良好。 如果我将相同的apk上传到Play商店,当我尝试使用Facebook登录时,它会显示“无效的密钥哈希。密钥哈希blablabla与任何存储的都不匹配”。 因此,如果我没有Facebook登录,我甚至无法得到我的谷歌地图; 这让我觉得在Play商店加载的apk会改变他的指纹或类似的东西。 我检查了Android开发者和Stackoverflow上的所有内容,但是我无法使其工作,因为很有意思的是这个签名版本的apk工作正常,直到我在Play商店加载它。

UnrecoverableKeyException无法获取有关私钥的信息,KeyStoreException:无效的密钥blob

在我们的应用程序中,我们一直遇到Android Keystore中的数据突然变得无法访问的问题。 我们看到的具体例外情况如下: java.security.UnrecoverableKeyException: Failed to obtain information about private key at android.security.keystore.AndroidKeyStoreProvider.loadAndroidKeyStorePublicKeyFromKeystore(AndroidKeyStoreProvider.java:223) at android.security.keystore.AndroidKeyStoreProvider.loadAndroidKeyStoreKeyPairFromKeystore(AndroidKeyStoreProvider.java:259) at android.security.keystore.AndroidKeyStoreProvider.loadAndroidKeyStorePrivateKeyFromKeystore(AndroidKeyStoreProvider.java:269) at android.security.keystore.AndroidKeyStoreSpi.engineGetKey(AndroidKeyStoreSpi.java:94) at java.security.KeyStoreSpi.engineGetEntry(KeyStoreSpi.java:474) at java.security.KeyStore.getEntry(KeyStore.java:1560) at .EncryptionInteractor.generateKeys(EncryptionInteractor.java:104) at .EncryptionInteractor.generateKeys(EncryptionInteractor.java:100) at .EncryptionInteractor.init(EncryptionInteractor.java:93) at .EncryptionInteractor.(EncryptionInteractor.java:80) at .EncryptionInteractor.init(EncryptionInteractor.java:65) at ..onCreate(APPLICATION_CLASS.java:17) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5791) at android.app.ActivityThread.-wrap1(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) […]