我在本地机器上生成证书时出现以下错误。

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版本有一些问题。我在我同事的机器上运行了同样的命令,它工作得很好。

请分享你的意见。


当前回答

我通过删除输出文件并再次运行该命令来修复此问题。事实证明,它不会覆盖之前的文件。我在更新一个让我们用tomcat加密证书时遇到了这个问题

其他回答

我已经解决这个问题,使用默认密码“changeit”。

如果您正在按照本指南为Flutter应用程序签名,则构建并发布Android应用程序并遇到此错误。我希望这个答案能帮到你。

在我的例子中,我改变了存储我的key.jks的路径。这发生在我身上,因为我在那个路径中有一个现有的文件。

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

该命令存储密钥。JKS文件在您的主目录。要将其存储在其他地方,请更改传递给-keystore参数的参数。

就我而言,

keytool -genkey -v -keystore /Users/Y/Desktop/X/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias keyYour

即Y -用户名和X -文件夹名

系统提示“Enter keystore password:”和“Re-enter new password:”。在这里你可以使用任何你想要的密码。

但是,要保持keystore文件的私密性;不要把它签入公共源代码控制!

在我使用Xamarin Forms 4.7和Visual Studio 2019 16.7.0 Preview 3.1的情况下,问题是最近更新的Android构建工具(apksigner)和JDK的版本不匹配。更新JDK到最新,并将新的JDK路径指向Tools->Options->Xamarin->Android Settings,并且它可以工作。

适用于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”输入或只是点击输入“不要输入任何密码”。

我通过使用cacerts keystore的默认密码来解决这个问题:'changeit'