丢失了密钥库别名但拥有用于该别名的文件和密码

32

最近我在密钥库中添加了一个新的别名来签署我的应用程序。

现在我丢失了这个新生成的带有别名的文件,但是我记得密码和别名名称,并且有一个较旧的文件副本。是否有一种方法可以使用这些东西重新创建别名?


1
你的意思是新的关键步骤丢失了吗? - pavanmvn
多少而言,是的。 如果在创建别名时没有随机因素,我应该能够重新创建它。 - waronin3D
@waronin3D,你最终找到解决方案了吗? - TOP
5个回答

68
您可以使用以下命令列出您的密钥库中的内容:
keytool -list -keystore <name of keystore file>

要做这个,你需要提供密钥库密码(而非别名密码)。这将告诉你文件中的别名,这些别名是自包含的,允许你进行签名。如果愿意,你也可以使用其他选项/工具提取密钥。


1
我知道别名不在文件中。 现在正在寻找一种重新创建它的方法。 - waronin3D
不可能的。如果可能的话,如果我知道你的别名,那么我可以伪造你的签名密钥来冒充你的签名。密码与别名的内容无关,只与密钥库中该别名的签名密钥的提取有关。回答你上面的评论 - 生成过程中必须有一个随机组成部分,出于安全需求。 - mah
那么别名内容是随机生成的吗? - waronin3D
别名只是一个名称,帮助您定位密钥。密钥是魔法酱,是随机生成的。别名可以更改,而不会影响密钥...所以是的。如果安全性很重要,这不是您设计系统的方式吗?否则,该过程将没有加密强度。 - mah
运行得很好,我有文件和密码,但需要别名!谢谢! - Francois
22
使用verbose选项提取完整的关键信息:keytool -list -v -keystore <密钥库文件的名称> - skymook

42

使用文本编辑器打开您的密钥存储(.jks)文件。它将显示数据的二进制形式。第一行中的可读文本是您的密钥别名。

例如,在以下二进制数据中your key alias就是密钥别名。

þíþí your key alias UYY_ 0‚þ0 +* ‚êa÷í–ØRö}ðžá䶈ùÎL\ô©2‘wå¥H¨V †¸®Àµ£ð×þ7—â;TÁÙcsª”ž˜4ÝÉ'AÀì,’„×S¼ðßÅ'€Õ¡ó‚˜ ö!y’Çåx|(woÁh4u-û†‚‡§Qȸ|ˆ³”ÜæûZŽ²a±O­´¢^À.ªbÅ“e†6 É秮j§˜y ößÿØ0Çd@ /Ã?®¦ìé¼/§Zq””Ê•©„=~Ùì¢>º}DàO<Ö¹SbpÎŒ@Ø„°^Í^e»>¾ü«nM( "Nbûh·2ðÁ0¯ç¿61êè“[.ÇzeYŽºXkuÄy*ôq¥FSs]:2“ì


1
你真是个救命恩人! - frazras
1
你是一个传奇!! - Simo D'lo Mafuxwana
太好了,它百分之百有效。 - Rafiqullah Taibzada

10

这里有一篇文章可能对你有帮助。

尝试运行以下命令,它可能会解决你的问题:

keytool -list -v -keystore X:/XXXX /XXXX.keystore -storepass XXXX


谢谢,这对我很有帮助。 - Sumit Pathak
非常好的答案!帮了我很多! - Jeffrey

5
这对我有用:
keytool -list -v -keystore "file address"

复制您的别名,TaDa!!!


你是一个魔术师。 - highdee

1
最新版的Android Studio中默认的别名为“key0”。如果您没有更改别名值,可以尝试使用此别名。

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