Android 使用RSA的SHA256而不是RSA的SHA1生成签名

Android 使用RSA的SHA256而不是RSA的SHA1生成签名,android,google-maps-android-api-2,Android,Google Maps Android Api 2,我一直在尝试为在windows7上使用google maps v2生成sha1密钥。运行以下命令后,根据google文档: keytool -list -v -keystore "C:\Users\your_user_name\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android 输出应类似于此() 我的输出: Alias name: androiddebugkey

我一直在尝试为在windows7上使用google maps v2生成sha1密钥。运行以下命令后,根据google文档:

keytool -list -v -keystore "C:\Users\your_user_name\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
输出应类似于此()

我的输出:

    Alias name: androiddebugkey
    Creation date: 12-Jun-2013
    Entry type: PrivateKeyEntry
    Certificate chain length: 1
    Certificate[1]:
    Owner: CN=Android Debug, O=Android, C=US
    Issuer: CN=Android Debug, O=Android, C=US
    Serial number: 57376504
    Valid from: Wed Jun 12 16:22:47 BST 2013 until: Fri Jun 05 16:22:47 BST 2043
    Certificate fingerprints:
             MD5:  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
             SHA1: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
             Signature algorithm name: SHA256withRSA
             Version: 3    

   Extensions:

   #1: ObjectId: 2.5.29.14 Criticality=false
   SubjectKeyIdentifier [
   KeyIdentifier [
   0000: 5D 1C 48 72 D9 E2 F0 1A   12 CE 97 CC 1F DA DD F6  ].Hr............
   0010: C9 D0 1E 62                                        ...b
   ]
   ]
但在我的例子中,输出是相似的,只是不同

Signature algorithm name:SHA256withRSA
有人能告诉我如何使用RSA生成SHA1的密钥吗。问这个问题的原因是当我试图在android应用程序中使用google maps v2时。将显示以下错误。我猜SHA256withRSA可能是这个错误的原因。这几天我一直被授权失败困扰。如果有人能帮助我,那就太好了。。谢谢

Authorization failure.  Please see https://developers.google.com/maps/documentation/android/start for how to correctly set up the map.

您正在使用JDK1.7吗?如果是,请将这些参数用于keytool:

-带RSA的sigalg SHA1-摘要SHA1

使用JDK1.6,您可以尝试交换
-v
-list
的位置(我知道,听起来很奇怪),以获得所有可能的算法(MD5、SHA1、SHA256)

keytool-v-list-keystore “C:\Users\your\u user\u name.android\debug.keystore”-别名 androiddebugkey-storepass android-keypass android


对于遇到这个问题的其他人:我很难让GoogleMapsAPIv.2使用JDK1.7工作——我一直收到授权失败消息。事实上,问题在于签名算法的名称

我找到了如何使用SHA1生成正确的调试密钥库。以下是我使用的命令:

keytool -genkey -v -keyalg RSA -sigalg SHA1withRSA -keystore "%USERPROFILE%\.android\debug.keystore" -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"
生成后,可以使用以下命令查看:

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
签名算法现在应该是“SHA1withRSA”。复制SHA1指纹并将其粘贴到谷歌控制台“Android应用程序密钥”中,你就可以开始了


请注意:如果debug.keystore已经存在,请确保在使用上面的first-genkey命令创建新的debug.keystore之前将其删除。如果密钥库已经存在,它会给您一个错误,即给定的密钥库已经存在-别名androiddebugkey

Hi@Nachi我正在使用jdk 1.6.0请注意,SHA1从2014年起被广泛弃用。在大多数主流浏览器上,它不再是一个受信任的证书算法。你能告诉我你用来生成sha256的命令吗。我面临着维切维萨的情况。我想和sha256签约。但是我得到了sha1
keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android