Chr*_*les 49 .net c# string windows-phone-7 c#-4.0
我正在寻找一种在WP7应用程序中安全存储API密钥的方法.键是一个字符串,目前硬编码到代码中(见下文).我知道有反射器程序的人可以很容易地看到这个.是否有更好的方法将此密钥打包为我的应用程序的一部分?资源会更安全吗?
string key = "DSVvjankjnersnkaecjnDFSD44VDS23423423rcsedzcadERVSDRFWESDVTsdt";
Run Code Online (Sandbox Code Playgroud)
(这实际上不是关键;))
先感谢您.
mak*_*aka 22
查看您的代码中的Safeguard数据库连接字符串和其他敏感设置,这是一个很好的阅读.您的问题在"应用程序源代码中的隐藏密钥"部分下.
摘抄:
如果在应用程序中定义键,除了对程序集进行模糊处理外,请尽量不在源代码中存储实际的键字节.相反,使用持久特性实现密钥生成逻辑,例如加密算法,密钥大小,密码短语,初始化向量和盐(请参阅使用对称(Rijndael)密钥加密和解密数据中的示例).这将引入一个额外的间接层,因此只需从应用程序二进制文件中转储符号就无法访问该密钥.只要您不更改密钥生成逻辑和密钥特征,就可以保证生成的密钥相同.不使用静态字符串作为密钥生成特性,而是在运行中构建它们也是一个好主意.另一个建议是以与应该处理数据存储相同的方式处理程序集,即通过应用适当的ACL.并且只使用此选项作为最后的手段,当没有其他数据保护技术工作时,您唯一的选择是保留未加密的敏感数据.
Stu*_*art 11
我已经阅读了所有这些答案,我认为没有任何方法可以安全地嵌入这个 - 无论你把它放在哪里,或者你如何混淆它.只要它在您的XAP中并在应用程序中解码,那么它将始终可用于黑客攻击.
如果你需要在xap内部以合理的保护程度发送密钥,那么我认为@maka的答案会产生你最好的选择 - 尽可能地混淆它 - 但不要认为这会让你安全 - 即不要为您的移动银行应用程序执行此操作
或者,如果您确实需要安全性,则不要仅在应用程序内运行 - 也请使用Web服务器.例如,如果您正在使用Facebook应用程序并且需要以某种方式保护您的Facebook密钥,那么您需要将用户从您的应用程序重定向到服务器上的网页以进行身份验证.然后,该网页需要引导用户完成获取访问令牌的过程 - 然后只需该访问令牌(以及公共appid)就需要返回到您的应用程序.对于那些需要知道密钥以及每次呼叫的网络服务,我恐怕每次通话都可能需要通过你的服务器.
| 归档时间: |
|
| 查看次数: |
16771 次 |
| 最近记录: |