有没有办法从签名的APK中获取密钥哈希?我们有一个签名的Android apk文件,我们想找出这个apk的密钥散列,用于Facebook SDK。我们可以用jarsigner这样的方法吗<有什么建议吗?
你可以从这里下载openssa
>
运行以下命令生成密钥哈希。在生成hashkey时,它应该询问您的密码。
keytool -exportcert -alias androiddebugkey -keystore "C:\Users\Anhsirk.android\debug.keystore" | openssl sha1 -binary | openssl base64
注意:在上面的代码中,请注意,您需要将您的路径提供给user(即在我的情况下是C:\用户\Anhsirk,您只需要为您的用户帐户更改此路径。
输入Android密码。如果它不请求密码,则密钥库路径不正确。
对于windows用户来说,从openssl获取密钥有时可能会很棘手。。我总是用这个来找到正确的签名。。只需将此代码粘贴到onCreate()中并运行。
// Add code to print out the key hash
try {
PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.e("MY KEY HASH:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
更新:
使用Android studio(2.1.2):
这将运行一个gradle任务,该任务将打印带有md5和sha1密钥的调试和发布证书
在linux上,我使用以下命令从apk获取密钥哈希:
keytool -list -printcert -jarfile [path_to_your_apk] | grep -Po "(?<=SHA1:) .*" | xxd -r -p | openssl base64
适用于Mac用户(OS X),因为没有grep-P支持
keytool-list-printcert-jarfile~/Downloads/YOURAPKFILE。apk | grep“SHA1:| cut-d”“-f3 | xxd-r-p | openssl base64
我已经用default debug.keystore密钥签署了我的apk,但不幸的是我的系统被破坏了,现在我需要从已经签署的apk中获取密钥存储。 用新apk替换旧apk。 我有MD5和SHA的指纹,但我可以把它们作为密钥库来签署APK。
我正在intellij和Gradle下开发android应用程序。并使用以下方式生成密钥库文件: 然后使用build.gradle中的密钥库文件: 任务“:MyExample:PackageRelease”执行失败。 无法从密钥存储区读取密钥
问题内容: 我想从数据库中的表中获取列名列表。使用编译指示,我会得到一个元组列表,其中包含很多不需要的信息。有没有办法只获取列名?所以我最终可能会遇到这样的事情: [Column1,Column2,Column3,Column4] 之所以绝对需要此列表,是因为我想在列表中搜索列名并获取索引,因为很多代码中都使用了索引。 有没有办法得到这样的清单? 谢谢 问题答案: 您可以使用sqlite3和pep
我想使用azure密钥库来存储没有azure ad身份验证的控制台应用程序的连接字符串。 那么,没有Azure AD有没有办法访问Azure密钥库呢?
问题内容: 因此,我使用Python 3.2.1的cElementTree解析了一些XML文件,并且在解析过程中,我注意到某些标签缺少属性信息。我想知道是否有任何简单的方法来获取xml文件中这些元素的行号。 问题答案: 查看文档,我看不到使用cElementTree做到这一点。 但是,我对lxml的XML实现版本感到幸运。使用libxml2,它的替换量几乎下降了。元素具有属性。(以及获得许多其他X
问题内容: 我试图找到一种方法来查找数据库中的表的名称(如果存在)。我发现从sqlite cli我可以使用: 然后对于字段: 这显然在python中不起作用。有没有办法用python做到这一点,还是我应该只使用sqlite命令行? 问题答案: 您应该能够从表中访问表名称。 列名不能直接访问。获取它们的最简单方法是查询表并从查询结果中获取列名。