我忘记了我的密钥库密码,我不知道该怎么办(我不能或不会给它任何借口)。我想更新我的应用程序,因为我刚刚修复了一个错误,但它不再可能。如果我使用相同的密钥库但创建新密钥会发生什么?我是否仍然可以更新应用程序,如果不可能,我该如何向用户提供有关更新版本的信息?
如果有人遇到这样的问题或遇到过麻烦,你可以给出什么建议来帮助纠正这种情况?幸运的是,它是一个免费的应用程序。
它可能有点迟,但它会帮助某人肯定你可以搜索密码,如果你还记得一些东西,否则尝试搜索
signingConfig.storePassword
如果你忘记了密钥别名,你也可以在这里找到像signatureConfig.keyAlias这样的东西
Project.gradle \ 3.3 \ taskArtifacts \ taskArtifacts.bin
希望它会帮助某人
对于任何可能遇到此问题的人,我想分享一个答案,可能是您或浏览本文的其他人(如我自己)。
我正在使用Eclipse并在其1.0版本中创建了我的密钥库。快进3个月,我想将其更新为1.1。当我在Eclipse中选择Export ...并选择了该密钥库时,我记不起的任何密码都没有。每次它说“密钥库被篡改或密码不正确”。它达到了一个点,我准备在它上面运行一个暴力程序,只要我能站立(一个星期左右)试图让它工作。
幸运的是,我在Eclipse之外签署了我的未签名.apk文件。瞧 - 它有效!我的密码一直都是正确的!我不确定为什么,但是通过导出菜单在Eclipse中签名即使我的密码正确也报告错误。
所以,如果你收到这个错误,这里是我的步骤(取自adding: META-INF/MANIFEST.MF
...
signing: classes.dex
),以帮助你让你的apk准备好市场。
注意:要从Eclipse获取未签名的apk:右键单击项目> Android工具>导出未签名的应用程序
Verifying alignment of signedaligned.apk (4)
50 META-INF/MANIFEST.MF (OK - compressed)
...
1047129 classes.dex (OK - compressed)
Verification succesful
即未签名的版本将被覆盖,因此您签名的apk文件现在与未签名的文件名相同========>准备提交给市场
花了将近一天的时间研究在Android Studio中恢复丢失的密钥库密码的可能选项。我找到了以下4种可能的方法:
Pandroid.injected.signing.key.password
检索您的密码。当您部分忘记密码意味着您仍然有一些密码提示时,此方法非常有用。首先下载AndroidKeystoreBrute_v1.05.jar然后按照给定的image.signingConfigs {
config {
keyAlias 'My App'
keyPassword 'password'
storeFile file('/storefile/location')
storePassword 'anotherpassword'
}
}
准备一个wordlistfile like(wordlist.txt),在该文件中给出你的提示
密码提示:
用户
用户
密码
密码
pa55word
密码
@
*
#
$
&
1
2
123
789
你会得到你的密码。
解决方案2019(Windows,Android Studio 3.3,gradle 4.10):
此解决方案仅在以前标记为“记住密码”复选框时才有效。
首先,对于此版本的gradle,taskArtifacts.bin不存在,idea.log显示密码的星号。这是过时的解决方案,对我没用。
我在哪里找到明文密码:C:\ Users \ {username} \ AndroidStudioProjects \ {project} \ app \ build \ intermediates \ signing_config \ release \ out \ signing-config.json
密钥:mStorePassword和mKeyPassword。
我真的希望它可以帮助别人。
我一下子遇到了同样的问题。即使通过Google Play进行App签名,丢失密钥库或密码并不像以前那么大,但作为开发人员,我们宁愿更改密码并使用生成的密钥库文件,而无需等待几天谷歌来处理它。 (为了处理这个问题,谷歌使用这个link提出请求)为了自己处理这个问题,首先从这个javac ChangePassword.java
下载两个.java文件。然后通过java ChangePassword <oldKeystoreFileName.keystore> <newKeystoreFileName.keystore>
命令编译ChangePassword.java。然后你可以跑
Georgi Koemdzhiev's
使用当前密钥库文件的路径/名称更改oldKeystoreFileName.keystore,使用新生成的新密钥库文件的路径/名称newKeystoreFileName.keystore。这会促使你
输入密钥库密码:
。只需输入您喜欢的任何内容:)无需输入丢失的原始密码。然后用*输入新密码
新的密钥库密码:
如果你的密码都不同,那么Android暴力将不起作用,所以最好的选择可能就是尝试找到名为的文件
log.idea
在您的C:/ users /您的指定帐户中,您可能会发现在android文件夹中的那个文件lpg.idea在记事本中然后搜索
别号
在记事本中使用find选项,你会发现密码和别名以及别名密码已经显示在那里
总结一下,这个问题有3个答案(并且接受的答案没有给出解决方案):
这个C:\Users\{Username}\.AndroidStudio2.2\system\log\idea.txt
深入介绍了所有这三种解决方案。
我找到了密码
Pandroid.injected.signing.store.password
搜索
taskhistory.bin
刚刚遇到这个问题 - 幸运的是我能够在一些Gradle的临时文件中找到密码。万一有人落在这里,试着寻找
..Project\.gradle\2.4\taskArtifacts\taskArtifacts.bin
它是以明文形式存在的。一般情况下,如果您确实记住了密码的至少一部分,请尝试搜索包含此子字符串的文件,并希望您能找到一些东西。
想把它扔出去,也许最终会帮助别人。
转到项目搜索密码的.gradle
文件夹中的taskHistory.bin
向下滚动,直至找到密码
打开storePassword
并搜索C:\Users\<your username>\AndroidStudioProjects\WhatsAppDP\.gradle\2.2.1\taskArtifacts
在我的情况下,即使我存储了正确的密码,我的别名也是错误的。所以我认为这是错误的密码(使用离子包)所以我用这个命令来获取别名
keytool -list -v -keystore
我能够再次使用密钥库!
C:\用户\ ADMIN \ AndroidStudioProjects \ TrumpetTVChannel2.gradle \ 2.14.1 \ taskArtifacts \ taskArtifacts.bin
第一次尝试创建新的密钥库....然后打开带有记事本的taskArtifacts.bin并查找刚才给出的密码....你将能够找出你刚刚给出的密码附近的单词然后搜索附近的这些单词你的密码在同一个文件....你将能够找出密码..... :)
无需使用蛮力,简单的方法就是找到您的纯文本密码。
每个:
taskArtifacts.bin
打开:
signingConfig.keyPassword¬í t <your password>Æù
当你打开taskArtifacts.bin可能看起来是加密的,不要担心搜索“.keyPassword”几次。然后,您将以纯文本格式找到密码。它可能类似于:
~/Library/Logs/AndroidStudio2.0
希望这有用。
那么要查找丢失的密钥库密码,你可以尝试这个,对我来说,以下解决方案工作得很好。
在idea.log
中找到想法日志文件。您也可以通过在文件管理器中打开Android Studio->帮助 - >显示日志来找到它们。
打开idea.log.1
文件。注意:可能有多个文件名为idea.log.2
,“Pandroid.injected.signing.key.password”
等。查看每个文件,直到找到密码。
搜索keytool -list -keystore sample.jks
,您可以看到密钥密码。
希望能帮助到你...
我遇到过同样的问题,我尝试过以下步骤来解决问题: -
在我的情况下,我已经将我的Android Studio从2.3升级到3.0.1,当我尝试为新的更新生成签名的apk时,我得到“Keystore被篡改,或密码不正确”错误。我有我以前的密钥库,我完全确定密码,使用它们我曾经多次更新过应用程序。经过大量搜索,没有一个解决方案适合我。这就是我做的。
希望这有助于任何人。
如果没有工作尝试这些线。移动到存储.jks的路径。在命令提示符下运行此命令。它会询问密码,忽略它并按回车键。
keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks
解决方案2018:如果您缺少密码或jks文件,请使用新密钥库文件对应用程序进行签名。
1)使用命令行创建新的keystore.jks文件(不是android studio构建菜单)
"C:\Program Files\Android\Android Studio\jre\bin\keytool.exe" -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore "C:\keystore_new.jks"
Windows示例:keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks
2)从新密钥库生成.pem文件
"C:\Program Files\Android\Android Studio\jre\bin\keytool.exe" -export -rfc -alias upload -file "C:\upload_cert.pem" -keystore "C:\keystore_new.jks"
Windows示例:https://support.google.com/googleplay/android-developer/contact/otherbugs
3)使用此支持表单,设置“密钥库问题”并使用附件添加.pem文件:Passwords
4)12-48h你启用了新的密钥库。使用使用新密钥库签名的新apk更新Playstore上的应用程序:D
如果提供了错误的密码,即使只是一次,它会继续说下次尝试:
密钥库被篡改或密码不正确。
即使你提供了正确的。我试了几次,也许是某种保护。 关闭导出向导并使用正确的密码重新启动它,现在它可以工作:)
如果您是Mac用户,请尝试检查Keychain Access应用程序。我的密码保存在名为org.jetbrains.android.exportSignedPackage.KeystoreStep$KeyStorePasswordRequestor
的android
下。或者,您可以在密钥链访问中搜索Rebuild Project
以在Keychain应用程序中查找密码。
不知道密码是如何结束的。但我不记得自己把它放在那里。所以必须是Android Studio。希望这是有帮助的。
注意:在尝试使用更新的密码进行签名之前,请不要忘记使用Clean Project
或qazxswpoi。否则,虽然密码正确,但Android Studio可能无法构建apk。
Brute是你最好的选择!
这是一个帮助我的脚本:
https://code.google.com/p/android-keystore-password-recover/wiki/HowTo
你可以选择给它一个密码可能包含的单词列表,以便快速恢复(对我而言,它在<1秒内工作)
在MAC启动控制台实用程序上,向下滚动到〜/ Library / Logs - > AndroidStudio - > idea.log.1(或任何旧的日志编号)然后我搜索“keystore”,它应该出现在日志中的某个位置。
原始问题:link
事实上,失去thekeystore password
不是问题。
您可以使用下面的keytool
命令创建新的密钥库并为其设置新密码。您不需要原始密钥库密码:
keytool -importkeystore -srckeystore path/to/keystore/with/forgotten/pw \
-destkeystore path/to/my/new.keystore
出现提示时,为new.keystore
和源密钥库密码(丢失了密码)创建密码,只需按Enter键即可。
您将收到有关未检查完整性的警告,并且您将使用新设置的密码将new.keystore与原始内容相同。
这个工作的原因是keystore password
只用于提供keystore
的完整性,它不用它加密数据,与private key password
相反,private key password
实际上保持你的私钥加密。
请注意,您必须知道您的keystore password
才能签署您的应用程序。好吧,如果它与被遗忘的@ElDoRado1239 says in his answer相同,那么你可以像@ Artur的答案那样求助于暴力。
这种方法总是对我有用。
我觉得我需要回答这个问题,因为这不仅仅是在评论中。像..Project\.gradle\2.4\taskArtifacts\taskArtifacts.bin
(不要忘记赞成他的回答;)
..Project\.gradle\2.2.1\taskArtifacts\taskArtifacts.bin
在gradle 2.2.1
,因为我使用storePassword
signingConfig.storePassword¬í t my.forgoten.password—signingConfig.keyAlias
像@Moxet Khan在评论中说...我的情况是在线cd ~/Library/Logs/
希望能帮助别人!!!
幸运的是,我在Android工作室日志中找到了丢失的密码以及密钥库路径和别名。
如果您正在运行基于Linux / Unix的计算机。
导航到Library Logs目录
-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,
在那里,如果你还记得你用来构建最后一个版本APK的android工作室版本。导航到该目录
例如:cd AndroidStudio1.5 /
在那里你会找到日志文件。在任何日志文件(idea.log)中,您都可以找到密钥库凭据
例
我希望这对Android Studio用户有帮助