如何在android中安全地存储API_ACCESS_TOKEN?

时间:2018-01-31 05:33:08

标签: java android rest proguard

我已将API_TOKEN存储在常量文件中并使用了proguard。如果有人将反编译apk,他可以看到API_TOKEN访问REST API' s 那么,如何保护它以及存储APITOKENS的最佳方式是什么;

这是我的代码

 restAdapter.setRequestInterceptor(new RequestInterceptor() {
        @Override
        public void intercept(RequestFacade request) {
            request.addHeader("Accept", "application/json");
            request.addHeader("Authorization", "Token token=" + 
   ConfigurationFile.API_TOKEN);
        }
    });

2 个答案:

答案 0 :(得分:1)

不要将其存储在应用中。从服务器下载它,并将其存储在密钥库中,或使用密钥库中的密钥加密。当然,如果有人愿意付出足够的努力,任何一种方式仍然可以解决。

如果你真的害怕,根本不要使用它。让您的服务器发出所有请求,并通过您的服务器发送您的请求。但这可能会耗费大量带宽。

答案 1 :(得分:0)

您可以做的是从BuildConfig文件中获取令牌。在项目的根目录中创建一个名为my_file.properties的文件。将令牌保留在那里,然后在构建(app)中定义该文件的实例。在构建类型下,使用该文件实例中的该值创建新的构建配置字段。

最终,您的令牌值将从您创建的my_file.properties文件中获取。

有关详情,请参阅Gradle tips