有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java安卓:调试密钥库

我正在尝试使用以下命令获取facebook(本机Android应用程序)登录的哈希键

C:\Program Files\Java\jre6\bin>keytool -exportcert -alias 安卓debugkey -keystore "C:\Users\Combitech\.安卓\debug.keystore"

我输入了密码“安卓”,但没有输入散列键,我得到了如下输出

☺☺♂♣ 071♂0      ♠♥U♦♠‼☻US1►0♫♠♥U♦
431004061248Z071♂0      ♠♥U♦♠‼☻US1►0♫♠♥U♦
☺☺☺♣ ♥é☺☼ 0é☺0é☺"0
☺☺♂♣ ♥é☺☺ I$F╠≥C½?k½~U▬éïP▄ûπ^?╢Äïï▲D╓♣╥h☺⌡═Æ╠■≥        ,♦Wm#≥W▓♦↓┴1¡┼╩ú♀⌠,-62º ═V¶■‼   ûªE¢⌂φg╢çpSúuαΩ√:ôp∩<û╕úxj↓╠G♠=↔x ╥s0²↓¬}é←êR╜s╜↓■6║/6HεC≥Éq1J═α┐3í2PU╓i-←ë¿Φαπ°Åφε÷àX░R‼   ☺Lje      -w╘²L▲♣╧♦'7←âDτ╜
╤Ω▲£6uü░K■o↕ö§q┼6▌⌂(≡}º3EC┴bo>√ßS─▌a«¼╡τ▐ïñºñ¢._w]¥±▒0'σ√»?oÄ╙⌠X»C█2â1)√7zod

任何人都不知道如何解决这个问题


共 (5) 个答案

  1. # 1 楼答案

    要显示SHA1散列(您需要Google API)和所有其他散列,请使用以下命令:

    keytool -list -v -keystore "C:\Users\Combitech\.android\debug.keystore"
    
  2. # 2 楼答案

    您可以从eclipse本身获取MD5指纹和SHA1指纹。试试这个:

    Windows>;偏好>;安卓>;建造

    请注意,将有两个不同的密钥,一个是默认密钥,另一个是用于应用程序开发的自定义密钥库

  3. # 3 楼答案

    您要查找的命令可能是:

    "C:\Program Files\Java\jdk1.6.0_22\bin\keytool.exe" -exportcert -alias androiddebugkey -keystore "C:\Users\Combitech\.android\debug.keystore" | C:\OpenSSL-Win32\bin\openssl sha1 -binary | C:\OpenSSL-Win32\bin\openssl base64

    提示:

    • 最好使用keytool.exe位置的完整路径和openssl位置的完整路径
    • 别忘了用路径"C:\Users\Combitech\.android\debug.keystore"更改密钥库路径

    更多信息here

  4. # 4 楼答案

    尝试如下。还要确保调试密钥库文件是正确的

    您应该将'-v'添加到keytool命令中。您的命令的-v将获得MD5、SHA1和SHA256中的指纹

     keytool -list -v -keystore C:\Users\Combitech\.android\debug.keystore
    

    您不需要在调试中添加双引号。密钥库文件路径

  5. # 5 楼答案

    试试这个代码。它将返回日志猫中的哈希键。 别忘了更改包名

    try {
                PackageInfo info = context.getPackageManager().getPackageInfo(
                        "com.example.package", PackageManager.GET_SIGNATURES); //Your package name here
                for (Signature signature : info.signatures) {
                    MessageDigest md = MessageDigest.getInstance("SHA");
                    md.update(signature.toByteArray());
                    Log.v("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
                    }
            } catch (NameNotFoundException e) {
            } catch (NoSuchAlgorithmException e) {
            }