如何在Android中处理丢失的KeyStore密码?

我已经忘记了我的密码存储密码,我不知道该怎么办(我不能或不会给出任何借口)。 我想更新我的应用程序,因为我只是修复了一个错误,但不能再修复了。 如果我使用相同的密钥库,但创build一个新的密钥会发生什么? 我仍然可以更新应用程序,如果不可能,我怎么能给用户提供有关更新版本的信息?

如果有人遇到这样的问题或遇到麻烦,你可以给些什么build议来帮助解决问题? 幸运的是,这是一个免费的应用程序。

看到这个链接

这是不幸的,但是当你失去了你的密钥库或密钥库的密码时,你的应用程序就成了孤儿。 你唯一能做的就是用新密钥重新提交你的应用程序到市场。

始终备份您的密钥库并将密码写在安全的地方。

刚刚遇到这个问题 – 幸运的是我能够在一些Gradle的临时文件中find密码。 万一有人在这里,请尝试寻找

..Project\.gradle\2.4\taskArtifacts\taskArtifacts.bin 

那里是明文。 一般来说,如果您确实记得密码的至less一部分,请尝试search包含此子string的文件,并希望您能找出一些东西。

想要扔在这里,也许最终会帮助别人。

如果提供了错误的密码,即使只是一次,也会在下次尝试时说:

密钥库被篡改或密码不正确。

即使你提供了正确的。 我试了好几次,也许是某种保护。
closures导出向导并用正确的密码重新启动它,现在它工作:)

妓女是你最好的select!

这是一个帮助我的脚本:

https://code.google.com/p/android-keystore-password-recover/wiki/HowTo

您可以select给它一个密码可能包括一个非常快速的恢复(对我来说,它在1秒内工作)

在MAC启动控制台实用程序,并滚动到〜/库/日志 – > AndroidStudio – > idea.log.1(或任何旧的日志号)然后我search“密钥库”,它应该出现在日志的某处。

原始问题: 链接

事实上,丢失keystore password不是问题。
您可以使用下面的keytool命令创build新的密钥库并为其设置新的密码。 您不需要原始密钥库密码:

keytool -importkeystore -srckeystore path/to/keystore/with/forgotten/pw \
-destkeystore path/to/my/new.keystore

出现提示时,为您的new.keystore源密钥库密码 (丢失)创build密码,然后按Enter键
您将得到未被检查的完整性警告,并且您将使用新设置的密码获得与原始相同的new.keystore。

这样做的原因是keystore password仅用于提供keystore完整性,它不会用它来encryption数据,而private key password实际上保持您的私钥被encryption。

请注意,您必须知道您的private key password才能签署您的应用程序。 那么,如果它与被遗忘的keystore password相同,那么你可以诉诸于@阿图尔的回答中的暴力。

这种方法一直为我工作。

幸运的是,我从我的Android工作室日志中发现了丢失的密码以及密钥库path和别名。

如果你正在运行基于Linux / Unix的机器。

导航到“库日志”目录

 cd ~/Library/Logs/ 

在那里,如果你还记得你用来构build最后一个版本APK的Android工作室版本。 导航到该目录

例如:cd AndroidStudio1.5 /

在那里你会find日志文件。 在任何日志文件(idea.log)中,您都可以find您的密钥库凭证

 -Pandroid.injected.signing.store.file=/Users/myuserid/AndroidStudioProjects/keystore/keystore.jks, -Pandroid.injected.signing.store.password=mystorepassword, -Pandroid.injected.signing.key.alias=myandroidkey, -Pandroid.injected.signing.key.password=mykeypassword, 

我希望这有助于Android Studio用户

对于任何可能碰到这个问题的人,我想分享一个可能是你或者浏览这篇文章的其他人的答案(就像我一样)。

我正在使用Eclipse,并为我的1.0版本创build了我的密钥库。 快进3个月,我想把它更新到1.1。 当我在Eclipse中select“导出…”并select了该密钥存储库时,没有任何我能记得的密码工作。 每次它说“密钥库被篡改或密码不正确”。 只要我能够坚持一个星期左右的时间,我就准备好运行一个powershell计划,试图让它运转起来。

幸运的是,我在Eclipse之外签署了我的无符号.apk文件。 瞧 – 它的工作! 我的密码一直是正确的! 我不知道为什么,但通过“导出”菜单在Eclipse中进行签名,即使密码正确,也会报告错误。

所以,如果你得到这个错误,这里是我的步骤(从Android文档中获取)来帮助你准备好你的apk。

注意:从Eclipse获取未签名的apk:右键单击项目> Android工具>导出未签名的应用程序

  1. 使用密钥库签署未签名的apk文件

    一个。 打开pipe理员cmd提示符,并转到“C:\ Program Files \ Java \ jdk1.6.0_25 \ bin”或任何版本的Java你已经(复制未签名的apk文件和你的密钥库)

    湾 在cmd提示符下input以下命令:jarsigner -keystore mykeystorename.keystore -verbose unsigned.apk myaliasnamefromkeystore

    C。 它会说:“为密钥库input密码:”。 input它并按回车。

    d。 ===>成功看起来像这样:

     adding: META-INF/MANIFEST.MF ... signing: classes.dex 

    即 未签名的版本将被覆盖,所以您签名的apk文件现在与未签名的文件名称相同

  2. 使用ZipAlign压缩已签名的apk文件,以便在市场上发行

    一个。 打开pipe理cmd提示符并转到“c:\ AndroidSDK \ tools”或安装Android SDK的位置

    湾 input这个命令:zipalign -v 4 signed.apk signedaligned.apk

    C。 ===>成功看起来像这样:

     Verifying alignment of signedaligned.apk (4) 50 META-INF/MANIFEST.MF (OK - compressed) ... 1047129 classes.dex (OK - compressed) Verification succesful 

    d。 签名和alignment的文件位于signedaligned.apk(您在前面的命令中指定的文件名)

========>准备提交给MARKETPLACE

首先下载AndroidKeystoreBrute_v1.05.jar,然后按照给定的图像。 在这里输入图像说明

准备一个像wordlist.txt这样的文件列表,在那个文件里给你提示

密码提示:

用户

用户

密码

密码

pa55word

密码

@

*

$

1

2

123

789

你会得到你的密码。

我觉得我需要把它作为一个答案,因为这不能只是在评论。 就像@ ElDoRado1239在他的回答中所说 (不要忘记提高他的答案;)

  • 寻找..Project\.gradle\2.4\taskArtifacts\taskArtifacts.bin在我的情况是在..Project\.gradle\2.2.1\taskArtifacts\taskArtifacts.bin因为我使用gradle 2.2.1
  • 然后寻找storePassword像@Moxet Khan在评论中说…在我的情况是在线signingConfig.storePassword¬í t my.forgoten.password—signingConfig.keyAliassigningConfig.storePassword¬í t my.forgoten.password—signingConfig.keyAlias

希望帮助别人!

花了近一天的时间研究在Android Studio中恢复丢失的密钥库密码的可能选项。 我发现以下4种可能的方式来做到这一点:

  1. 使用AndroidKeystoreBrute来检索你的密码。 当你部分忘记你的密码时,这个方法是非常有用的,这意味着你仍然有一些你的密码的提示。

  2. 如果您以前使用同一台计算机发布了应用程序(您可以find密钥存储库密码),也可以通过Android Studio日志文件进行检索。 参考以下目录:

    Mac OSX

    〜/资源库/日志/ AndroidStudio / idea.log.1

    Linux(可能的位置)

    /家庭/ USER_NAME / AndroidStudio /系统/日志

    Windows(可能的位置)

    C:\ Users \用户名\ AndroidStudio \ SYSTEM \日志

    并在文件内searchPandroid.injected.signing.key.password 。 如果您之前使用与您目前正在查看的Android Studio版本相同的应用程序签名,则会看到密码。

  3. 您也可以通过项目的.gradle目录检索密码。 寻找以下path

    project_directory / .gradle / 2.4 / taskArtifacts / taskArtifacts.bin。

    注意:这似乎不适用于更新版本的Gradle(2.10及更高版本)。

  4. 如果以上解决scheme都不可行,那么您可以尝试这一个,但是对于这一个,您还必须拥有Android Studio IDE应用程序或者您的项目密钥库密码已经保存得更早的偏好设置(在签名时使用记住密码选项应用程序)。 您可以从以下path获取IDE首选项:

    Mac OSX

    〜/资源库/日志/ AndroidStudio / idea.log.1

    Linux(可能的位置)

    /家庭/ USER_NAME / AndroidStudio

    Windows(可能的位置)

    C:\用户\用户名\ .AndroidStudio

    只要使用旧的Android Studio IDE,或者将旧IDE的首选项导入到新IDE中,并将密钥库文件放在与之前签名并保存密码相同的path中。

    通过这种方式,一旦你打开项目,并尝试生成 – >生成签名的APK,并从旧的位置select密钥库文件。 它会自动检索密码并继续生成已发布的APK。

    发布APK成功生成后,您可以按照前面提到的选项2来检查最近生成的发布APK的日志文件中的密码。

Zach Klippenstein在Google+上遇到了和你一样的问题。 你可以按照这里的线程。

如果你的两个密码都不一样,那么Android的蛮力是行不通的,所以最好的select可能就是尝试find名为。的文件

log.idea

在你的C:/用户/你的指定帐户,那么你可能会发现,在那里在Android文件夹中打开该文件lpg.idea记事本,然后search

别号

在记事本中使用find选项,你会发现密码,别名和别名passwors已经显示在那里

总而言之,这个问题有三个答案(解决办法不是被接受的答案):

  1. 如果您的日志完好无损,那么您可以按照上面Georgi Koemdzhiev的回答在Android Studio日志文件中find密码。

  2. 您可以根据ElDoRado1239和Gueorgui Obregon的回答,从.gradle目录中的“taskArtifacts.bin”文件中检索密码。 这似乎并不适用于更新版本的Gradle(2.10及以上版本)。

  3. 根据上面的Srinivas Keerthiprakasam的回答,使用AndroidKeystoreBrute来猜测或暴力破解你的密码。

所有这三个解决scheme都在这个链接深入。

在我的情况下,我得到的别名错误,即使我存储了正确的密码。 所以我认为这是错误的密码(使用离子包),所以我用这个命令获取别名

keytool -list -v -keystore

而且我能够再次使用密钥库!

我已经find了密码

 C:\Users\{Username}\.AndroidStudio2.2\system\log\idea.txt 

search

 Pandroid.injected.signing.store.password 

C:\用户\ ADMIN \ AndroidStudioProjects \ TrumpetTVChannel2.gradle \ 2.14.1 \ taskArtifacts \ taskArtifacts.bin

第一次尝试创build新的密钥库….然后用记事本打开taskArtifacts.bin并查找您刚才给出的密码….您将能够找出靠近刚给出的密码的单词,然后search这些单词你的密码在同一个文件….你将能够找出密码….. 🙂

不需要使用暴力破解一个简单的方法就是find你的纯文本密码。

去:

 C:\Users\<your username>\AndroidStudioProjects\WhatsAppDP\.gradle\2.2.1\taskArtifacts 

打开:

 taskArtifacts.bin 

当你打开taskArtifacts.bin可能看起来是encryption的,不用担心search“.keyPassword”几次。 然后你会以纯文本的方式find你的密码。 它可能类似于:

 signingConfig.keyPassword¬í t <your password>Æù 

希望这是有帮助的。

那么要查找丢失的密钥库密码,你可以试试这个,对于我来说,下面的解决scheme工作得很好。

~/Library/Logs/AndroidStudio2.0find想法日志文件。 您也可以通过打开Android Studio->帮助 – >显示login文件pipe理器find这些。

打开idea.log文件。 注意:可能有多个文件,名为idea.log.1idea.log.2等,通过它们中的每一个,直到find密码。

search“Pandroid.injected.signing.key.password” ,您可以看到密钥密码。

希望能帮助到你…

我遇到过同样的问题,我尝试了下面的步骤来解决这个问题:

  1. 创build签名apk与创build新的密钥库和新密码。

  2. 现在使用旧的密钥库(以前的apk构build上传时使用的密钥库)重新创buildapk,但现在使用新的密钥库密码。

  3. 现在一定会使用旧密钥库成功创buildapk。

    • 希望这个解决scheme能帮助你

它可能有点晚,但它可以帮助确保你可以search密码,如果你还记得的东西,否则尝试search像

signingConfig.storePassword

另外如果你忘了关键别名,你可以在这里find,也search像signingConfig.keyAlias的东西

Project.gradle \ 3.3 \ taskArtifacts \ taskArtifacts.bin

希望它能帮助别人

没有什么会工作,所以请不要使用任何方法来恢复所有没有用的最好的select是,你必须重新提交与新密钥的应用程序,并取消发布旧应用程序