我一直在尝试生成sha1键,以便在windows7上使用谷歌地图v2。根据google docs运行以下命令:
keytool -list -v -keystore "C:\Users\your_user_name\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
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
我的输出:
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
有人能告诉我如何通过SHA1withRSA生成密钥。问这个问题的原因是我想在我的Android应用程序中使用谷歌地图v2。显示以下错误。我猜SHA256withRSA可能是造成这个错误的原因。几天后我被授权失败了。如果有人可以帮助我,真的很棒..谢谢......
Authorization failure. Please see https://developers.google.com/maps/documentation/android/start for how to correctly set up the map.
答案 0 :(得分:3)
对于遇到此问题的其他人:我很难让Google Maps API v.2使用JDK 1.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指纹并将其粘贴到Google控制台“Android应用程序密钥”中,您应该很高兴。
请注意:请确保在使用上面的第一个-genkey命令创建新的之前删除debug.keystore(如果已存在)。如果密钥库已经存在,它将给出一个密钥库已存在的错误,其中包含给定的-alias androiddebugkey
答案 1 :(得分:0)
您使用的是JDK 1.7吗?如果是,请将这些参数用于keytool:
-sigalg SHA1WithRSA -digestalg SHA1
使用JDK 1.6,您可以尝试交换-v
和-list
的位置(我知道,听起来很奇怪)以获取所有可能的算法(MD5,SHA1,SHA256)
keytool -v -list -keystore “C:\ Users \ your_user_name.android \ debug.keystore”-alias androiddebugkey -storepass android -keypass android