【问题标题】:How to hide translator API key in android如何在android中隐藏翻译器API密钥
【发布时间】:2016-02-12 07:07:19
【问题描述】:

我在我的应用程序中使用 yandex 和 google translate,当然有唯一的 API 密钥,但是每个人都可以通过反编译我的应用程序来窃取它。怎么隐藏?

【问题讨论】:

    标签: java android api google-maps yandex


    【解决方案1】:

    如果我是你,我会租用服务器(可能是亚马逊)并创建一个数据库,然后用简单的加密字符串(哈希等)插入我们的 api 密钥。

    ID - Name - androidKey - key
    
    1 - GoogleAPI - AJKBSASHUA9 - yourAPIKey
    2 - YandexAPI - 5A6S5D6A53C - yourAPIKey
    .
    .
    .
    

    然后您可以创建一个服务,该服务由您的 android packageName 运行;

    http://example.com/API/getAPIKey/
    ?packageName="yourPackageName"
    &androidKey="AJKBSASHUA9"
    

    如果你使用 POST 方法,它对你来说是安全的。

    【讨论】:

    • md5 不是加密,而是哈希。
    【解决方案2】:

    简单地说,您根本无法在 APK 中或应用程序中执行此操作。如果有人想得到它,他们就会得到它。

    • 你要破译它们,我会在应用程序中找到密钥。
    • 你要把它们放到网上,安装后获取它们,我会root手机并获取它们。

    你为什么要一开始就隐藏它们,它们被分配了你的 [Release|Debug] 密钥库的 SHA1 指纹和你的包名,没有人可以知道你的发布密钥库和它的密码。

    【讨论】:

      【解决方案3】:

      虽然您可能无法实现 150% 的安全性,但您可能希望在您的应用中采取措施来减缓可能的攻击者的速度。这将导致他们中的一些人放弃利用您的应用程序,仅仅是因为这样做不值得。

      OWASP 移动安全项目已经发布了他们的"Top Ten Mobile Risks" 集合,其中特别是主题“破解密码学”和“缺乏二进制保护”在您的案例中很有趣。虽然即使此链接也没有为您提供简单的“操作方法”,但我认为它可以帮助您评估您的情况。

      【讨论】:

        猜你喜欢
        • 2012-04-03
        • 1970-01-01
        • 1970-01-01
        • 2021-01-27
        • 2020-04-15
        • 2020-05-12
        • 2022-01-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多