所以这是我的问题。
当我运行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)
有什么想法吗?我在这里死了......
答案 0 :(得分:1)
嗨Richie你必须写下你的密钥库和openssl文件夹所在的路径,这就是我的方式......
我在::
中安装了OpenSSLC:\ 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) {
}