安卓Keystore密码更改

42
我想要更改我在 Google Play 上已经发布的 Android 应用程序中使用的密钥库密码,并在此之前了解一些事情:

1)如果我更改密钥库密码,是否可以继续使用相同的密钥库上传我的应用程序而不会出现任何问题(我需要这样做,这就是为什么我问)

2)更改别名密码是否具有相同的影响?

3)我应该如何使用 keytool?

6个回答

51

如果您在将应用程序签名并推送到Play商店之前 使用相同的密钥库,则应该没有问题。
更改密钥库密码或别名密码不会影响其用于生成已签名apk的方式。

为了使用keytool更新密码:

  1. 打开cmd提示符
  2. 浏览到keytool的位置/在系统变量下设置keytool位置,并直接执行步骤3
  3. 运行以下命令:
    keytool -keypass"原密码" -new "新密码" -keystore "密钥库位置"

安全提醒
如下所述,如vlz评论中所述。
您不应将密码包含在命令中,因为它将被写入您的命令历史记录(〜/.bash_history)。
相反,您可以使用以下命令(安全提示输入密码):
keytool -storepasswd -keystore "密钥库位置"

恢复计划
一定要先备份您的密钥库文件。


据我所知,密钥库通常需要密码才能正常工作。如果您确实需要这样做,可能需要在编写逻辑时提供签名选项来实现自己的密钥库逻辑。您可以尝试在谷歌上搜索相关内容。谢谢! - Saurabh Rajpal
我可以使用相同的名称和别名,但不同的密码创建新的密钥库文件吗? 这对于更新应用程序有效吗? - AngelJanniee
7
如果您不想在命令本身中提供密码,只需运行 "keytool -storepasswd -keystore“ 以更改密钥库密码。 - vlz
如果您没有看到安全提示,您至少可以使用history -d命令从bash历史记录中删除这些行。https://unix.stackexchange.com/a/275101/247515 - Gandalf458
我只是想知道这个还能不能用。 - undefined
显示剩余7条评论

30

keytool 的用法可能在过去几年中发生了变化。对我有效的操作如下:

  1. 更改存储库内别名密码:

keytool -keypasswd -keystore pathToKeystoreFile -alias yourAlias -keypass oldAliasPassword -storepass oldStorePassword -new newAliasPassword

  1. 更改存储库文件密码:

keytool -storepasswd -keystore pathToKeystoreFile -storepass oldStorePassword -new newStorePassword

温馨提示: 请务必先备份您的存储库文件,以防意外引入任何错别字!


23

我们不希望将密码作为命令的一部分,以避免将其存储在Shell历史记录中。

# Change the key password
keytool -keypasswd -alias "your_key_alias" -keystore "key_filename.key"
# Change the keystore password
keytool -storepasswd -keystore "key_filename.key"

3
这应该被接受为答案,你不想像之前的回答建议的那样将密码写入命令的一部分中,它们会以明文形式存储在你的bash历史记录中。 - Mohamed Hafez

9
我可以按如下方式更改密码:
keytool -keypasswd -alias "key alias" -keypass "previous password" -new "new password" -keystore "/../.android/debug.keystore"

1
但是,如果我已经使用它上传了一个应用到Google Play,改变它是否安全? - fapps
是的,但如果旧密码少于6个字符,则无法运行。 - T.S

0

Android Studio 4.2.x这个方法对我有效,进入输入密码的界面,如果保存密码的框已经勾选,请取消勾选,将正确的密码替换为任意无意义字符,然后尝试构建.apk文件。在构建失败后,返回并重新输入正确的密码,并勾选保存密码的框。


0

当我使用 Bubblewrap 生成 TWA APK 时,在封装 PWA(部署在 Netlify 上以获取 HTTPS 链接)时,我在构建过程中遇到了一个问题,我的密钥和密钥库密码错误。

因此,我手动删除了 android.keystore 文件,并再次运行

bubblewrap init --manifest=https:///manifest.json。它要求我生成新的密码,生成了新的密钥和密钥库密码,并解决了我的问题。

bubblewrap init --manifest=https:///manifest.json

bubblewrap build

you can observe android.keystore file


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接