我在本地机器上生成证书时出现以下错误。
C:\Users\abc>keytool -genkey -alias tomcat -keyalg RSA
Enter keystore password:
keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect
我认为jdk版本有一些问题。我在我同事的机器上运行了同样的命令,它工作得很好。
请分享你的意见。
我在本地机器上生成证书时出现以下错误。
C:\Users\abc>keytool -genkey -alias tomcat -keyalg RSA
Enter keystore password:
keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect
我认为jdk版本有一些问题。我在我同事的机器上运行了同样的命令,它工作得很好。
请分享你的意见。
当前回答
在我的Mac上,空密码是可行的
keytool -list -v -keystore ~/.android/debug.keystore
按回车键,就会显示出来
Enter keystore password:
在这里,只要按Enter键就可以获得空密码
其他回答
适用于Windows
打开命令提示符(按Windows键+ R,然后在出现的对话框中输入“cmd”,不带引号,然后按Enter键)。
然后输入下面的代码嗅探:
cd C:\Program Files\Java\ jdk1.7.0_25\bin
然后输入以下命令
"C:/Documents and Settings/Your Name/.android/debug.keystore"
然后它将要求Keystore密码。默认密码为 “android”输入或只是点击输入“不要输入任何密码”。
从你的描述中,我假设你用的是windows机器,你的家是abc
所以现在:原因
执行此命令时
keytool -genkey -alias tomcat -keyalg RSA
因为您没有指定显式的密钥存储库,它将尝试生成(在您的情况下,当您获得异常以便更新)密钥存储库C:\users\abc>。当然,您需要为.keystore提供旧密码,而我相信您正在提供您的版本(一个新版本)。
解决方案
删除C:\users\abc>目录下的.keystore,然后尝试执行该命令 或者尝试下面的命令,它将创建一个新的xyzkeystore: keytool -genkey -keystore xyzkeystore -alias tomcat -keyalg RSA . xml
注意:-genkey已经过时了,应该使用-genkeypair,尽管这两个功能相同。
这个答案对于那些在不同项目中管理多个密钥存储库的人很有帮助。
我有同样的错误,我注意到我正在使用一个文件密钥库。JKS和另一个密钥库的密码。JKS会抛出这个异常,因为密码不匹配。
使用changeit作为密码也很重要。
这个命令终于对我有用了(使用jetty):
keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass changeit -validity 360 -keysize 2048
在我使用Xamarin Forms 4.7和Visual Studio 2019 16.7.0 Preview 3.1的情况下,问题是最近更新的Android构建工具(apksigner)和JDK的版本不匹配。更新JDK到最新,并将新的JDK路径指向Tools->Options->Xamarin->Android Settings,并且它可以工作。