使用keytools的facebook app的Gettin哈希键

时间:2011-06-13 21:46:10

标签: android facebook openssl

所以这是我的问题。

当我运行keytool来获取哈希键时,它会给我; openssl不是有效的命令,程序等。

我安装了openssl,路径为:C:\ Program Files(x86)\ GnuWin32 \ bin \ openssl

这是错的吗?

我该如何编写命令行?

我试着这样写:

keytool -exportcert -alias androiddebugkey -keystore~ / .android / debug.keystore | openssl sha1 -binary | openssl base64

不行,所以我尝试这样:

keytool -exportcert -alias androiddebugkey -keystore c:\ Users \ Richie.android \ debug.keystore | openssl sha1 -binary | openssl base64

不起作用......

我应该指定openssl的路径或我该怎么办?

我也在Cygwin尝试了但是我甚至没有操作键盘工具'我不知道怎么去正确的文件夹(程序文件(x86)\ Java \ jre6 \ bin)

有什么想法吗?我在这里死了......

3 个答案:

答案 0 :(得分:1)

嗨Richie你必须写下你的密钥库和openssl文件夹所在的路径,这就是我的方式......

我在::

中安装了OpenSSL
  

C:\ OpenSSL的

我的Keystore的路径和名称是::

  

C:\机器人\ gruporeforma.keystore

这就是我在命令行中编写的内容::

  

keytool -exportcert -alias   gruporeforma -keystore   “C:\ android \ gruporeforma.keystore”|   c:\ openssl \ bin \ openssl sha1 -binary |   c:\ openssl \ bin \ openssl enc -a -e

答案 1 :(得分:0)

是的,您需要指定openssl和keytool的路径,除非它们已经在您的PATH中。第一个命令应该在Cygwin中作为类型工作,如果不是,你需要安装正确的包。或者只是继续使用Windows,指定每个可执行文件的完整路径。

答案 2 :(得分:0)

更好地使用这段代码

  try {
        PackageInfo info = getPackageManager().getPackageInfo("your.package",
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("YOURHASH KEY:",
                    Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }