【问题标题】:Get APK Certificate Keys using PHP使用 PHP 获取 APK 证书密钥
【发布时间】:2015-09-24 08:02:48
【问题描述】:

我正在构建类似于应用商店的东西,其市场包括 Android 移动应用。我没有 Google Play 开发者控制台帐户(是的,我仍然没有 25 美元),但我当然知道 Google Play 大量使用在 APK 签署发布时放置的证书。我对此不太确定,但我认为至少有两 (2) 个原因说明此证书很重要:

  • 用于防止某人上传某些人的作品。 (例如,我无法在自己的帐户中上传 Google+ APK,因为我不知道它的证书详细信息。但我对此有点困惑,因为如果我知道的是正确的,证书是私有的和公钥。那么,您将哪些密钥提供给 Google Play?那些拥有控制台帐户的人可以告诉我这一点。
  • 我认为这也很有用,如果我的 Google Play 控制台帐户遭到破坏,黑客无法上传新的恶意更新,因为他无法复制证书(或者至少我是这么认为的,但是现在我很困惑,因为我记得证书有一个到期日期,所以也请告诉我这个。)

所以现在,这是我真正的问题。正如我之前所说,我正在制作一个类似网站的应用商店,用于销售 Android 应用程序。现在由于我之前所说的关于 APK 上的证书签名,我还想确保将上传他们的应用程序的开发人员真正拥有该应用程序(这样就没有人会上传例如 Facebook APK,这显然不是他们的) ,还有一个有用的东西,就是不会有重复的应用程序。)

我们正在使用 PHP 并且希望尽可能地坚持使用 PHP。有没有办法用 PHP 做到这一点以及如何做到这一点?开发者需要提供哪些密钥(用于验证)?私钥或公钥(我对此有点困惑,但我猜它是私钥)。谢谢!

编辑:
我偶然发现了this 链接,这可以用PHP 实现吗?抱歉,我对PHP还是不是很专业,不知道能不能用它运行终端命令。

【问题讨论】:

    标签: php android


    【解决方案1】:

    什么是公钥/私钥?
    您可以简单地搜索和阅读许多关于公钥/私钥加密的文章。
    维基百科:https://en.m.wikipedia.org/wiki/Public-key_cryptography

    apk 符号的使用情况如何?
    现在你应该知道你在找什么钥匙了,为什么!但签署 apk 文件的主要原因是确保除应用所有者(开发者)之外的任何人都不能编辑应用并将编辑(破解)的应用发布到市场或互联网上。

    如果您了解 java 编程(混淆的 apk 除外),那么破解 android 应用程序非常简单。因此,如果有人破解了您签名的 apk,他会在该 apk 上使用不同的签名,并且 Android 操作系统不允许更新新的已签名 apk 并将其自身替换为旧的已签名 apk。


    apk符号怎么读?
    看这篇文章主要答案: How do I find out which keystore was used to sign an app?
    您询问有关使用 php 获取 apk 符号的信息。实际上你可以通过 php 获取 RSA 文件。但要获取更多详细信息,您应该运行 Java 命令(密钥库)。

    【讨论】:

    • 所以这基本上意味着我没有机会使用 PHP 自动检查 RSA 中的哪些信息?有没有办法在 PHP 脚本中运行像 keytool 这样的 shell/console 应用程序?
    • @CodeHarmonics 显然您只有一种方法,即拥有一台支持 Java(安装了 jdk)的服务器。您可能会发现一些运行 java 的 php 服务器,因此您可以使用 java 命令,例如:'exec("keytool ....");' , 或者运行两个单独的 java - php 服务器并将它们的结果合并在一起。
    • @CodeHarmonics 如果您发现这是您的答案,请标记答案标记。谢谢
    • 是的。对不起。今天刚重新登录。感谢您指出 PHP 中的 exec() 函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 2021-12-11
    • 2023-03-30
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    • 2020-09-01
    相关资源
    最近更新 更多