我应该在哪里以安全的方式放置密钥/密码? [复制]

Posted

技术标签:

【中文标题】我应该在哪里以安全的方式放置密钥/密码? [复制]【英文标题】:Where shoud I put keys/passwords in a safe way? [duplicate] 【发布时间】:2016-01-21 14:45:27 【问题描述】:

我的应用需要一些键。一个用于 google maps api,一个用于我自己的 API。把这些放在哪里安全?我正在考虑将它们放在 xml 或清单中,但 this question 表示可以读取其他资源。

将密钥放入 java 文件对我来说似乎并不安全,因为它们 can be decompiled.

哪里可以安全放置我的钥匙?

【问题讨论】:

【参考方案1】:

您可以使用某种算法对它们进行哈希处理。并且混淆代码后,逆向工程也很困难。

【讨论】:

【参考方案2】:

也许您应该使用 NDK 来隐藏您的密钥。例如,您只需将密钥放入本机代码,然后构建 *.so 库。通过这种方式,您可以通过 JNI 获取您的密钥。但这当然不是“灵丹妙药”,lurcher 可以反编译库(肯定会遇到麻烦)或将其链接到他的项目,然后尝试获取密钥。 + 混淆你的代码。

【讨论】:

以上是关于我应该在哪里以安全的方式放置密钥/密码? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

使用 MD5 从密码生成加密密钥?

如何在 Linux Mint 中以编程方式发送密钥(模拟密钥输入)?

为 asp.net 存储密钥、密码的安全方法

在钥匙串中存储用于加密密码的密钥的最佳位置在哪里

在哪里放置@Transactional?在接口规范或实现中? [复制]

[dotnet] 封装一个同时支持密码/安全密钥认证的SFTP下载器,简单易用。