使用SHA256withRSA而不是SHA1withRSA生成签名

tro*_*roy 5 android google-maps-android-api-2

我一直在尝试生成sha1键,以便在windows7上使用谷歌地图v2.根据google docs运行以下命令:

keytool -list -v -keystore "C:\Users\your_user_name\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
Run Code Online (Sandbox Code Playgroud)

输出应与此类似(https://developers.google.com/maps/documentation/android/start#getting_the_google_maps_android_api_v2)

 Alias name: androiddebugkey
 Creation date: Jan 01, 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: 4aa9b300
 Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033
 Certificate fingerprints:
      MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9
      SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75
      Signature algorithm name: SHA1withRSA
      Version: 3 
Run Code Online (Sandbox Code Playgroud)

我的输出:

    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
   ]
   ]
Run Code Online (Sandbox Code Playgroud)

但在我的情况下,输出类似,但除外.

Signature algorithm name:SHA256withRSA
Run Code Online (Sandbox Code Playgroud)

有人能告诉我如何通过SHA1withRSA生成密钥.问这个问题的原因是我想在我的Android应用程序中使用谷歌地图v2.显示以下错误.我猜SHA256withRSA可能是造成这个错误的原因.我被困在授权失败的几天.如果有人可以帮助我真的很棒..谢谢..

Authorization failure.  Please see https://developers.google.com/maps/documentation/android/start for how to correctly set up the map.
Run Code Online (Sandbox Code Playgroud)

Nac*_*chi 0

您使用的是 JDK 1.7 吗?如果是,请对 keytool 使用以下参数:

-sigalg SHA1WithRSA -digestalg SHA1

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

keytool -v -list -keystore "C:\Users\your_user_name.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android