Java Android密钥库:如何确定创建密钥库使用的加密方式?

Java Android密钥库:如何确定创建密钥库使用的加密方式?,java,android,keytool,Java,Android,Keytool,下面是一个场景:我在一年前创建并发布了一个android应用程序。我使用Java5创建密钥库和别名。现在,当我尝试使用此处的说明对我的应用程序进行签名时:我得到以下信息: keytool错误:java.io.IOException:密钥库被篡改或密码不正确 我确信密钥库没有被破坏,因为它的二进制文件与我发布原始应用程序时提交给私有git repo的文件没有任何区别。密码保持不变,并通过passpack进行维护 改变了什么:我的操作系统和java版本。我最初运行的是OSX10.5和Java5.0,

下面是一个场景:我在一年前创建并发布了一个android应用程序。我使用Java5创建密钥库和别名。现在,当我尝试使用此处的说明对我的应用程序进行签名时:我得到以下信息:

keytool错误:java.io.IOException:密钥库被篡改或密码不正确

我确信密钥库没有被破坏,因为它的二进制文件与我发布原始应用程序时提交给私有git repo的文件没有任何区别。密码保持不变,并通过passpack进行维护

改变了什么:我的操作系统和java版本。我最初运行的是OSX10.5和Java5.0,现在使用的是OSX10.6.8和Java6

我想我已经把它缩小到加密不匹配的程度了。有人知道该设置的默认加密是什么吗


此外,我可能使用EclipseADT20.x为EclipseGanymede/helios构建了密钥库。也找不到任何与此相关的默认信息。

尽管应用程序签名说明告诉您使用密钥大小为2048的RSA,但Java 5的原始默认值并不相同

以下是最终解锁使用Java 5.0创建的密钥库的组合:

keytool-list-v-keystore sumall\u android\u keystore-keyalg DSA-keysize 1024-sigalg SHA1withDSA

Java 5.0的keytool默认使用DSA 1024创建密钥。
Java6和Java7都更改了默认加密

请参阅:中支持的算法和密钥大小