相关疑难解决方法(0)

在应用程序中存储和保护私有API密钥的最佳实践

大多数应用开发者会将一些第三方库集成到他们的应用中.如果要访问服务,例如Dropbox或YouTube,或者用于记录崩溃.第三方图书馆和服务的数量是惊人的.大多数这些库和服务都是以某种方式通过服务进行身份验证而集成的,大部分时间都是通过API密钥进行的.出于安全目的,服务通常生成公共和私有(通常也称为秘密密钥).不幸的是,为了连接到服务,必须使用此私钥进行身份验证,因此可能是应用程序的一部分.毋庸置疑,这面临着巨大的安全问题.公共和私人API密钥可以在几分钟内从APK中提取,并且可以轻松实现自动化.

假设我有类似的东西,我该如何保护密钥:

public class DropboxService  {

    private final static String APP_KEY = "jk433g34hg3";
    private final static String APP_SECRET = "987dwdqwdqw90";
    private final static AccessType ACCESS_TYPE = AccessType.DROPBOX;

    // SOME MORE CODE HERE

}
Run Code Online (Sandbox Code Playgroud)

您认为存储私钥的最佳和最安全的方式是什么?混淆,加密,你怎么看?

android reverse-engineering proguard api-key

342
推荐指数
13
解决办法
12万
查看次数

如何将用户定义的属性/值添加到Android清单文件中?

我想在清单文件中添加自定义属性/属性,并能够在运行时读取它.我想这样做,所以我可以通过这些清单属性自定义应用程序的行为.如何才能做到这一点?

android android-manifest android-custom-attributes

34
推荐指数
2
解决办法
2万
查看次数

有没有办法将Android清单中的元数据保密到包中?

我想在Android清单中使用元数据来自定义服务的行为.

<service
    android:name=".SampleService"
    android:exported="false">
    <meta-data
        android:name="sampleName"
        android:resource="@string/sampleValue" />
</service>
Run Code Online (Sandbox Code Playgroud)

我的服务是库的一部分,有些人可能会在使用我的服务时将敏感数据放入这些属性中.即使服务未导出,这些元数据属性是否可通过PackageManager对手机上的其他已安装软件包可见?

service android metadata android-manifest android-package-managers

6
推荐指数
1
解决办法
2181
查看次数