我是开发AIR应用程序的新手,所以也许这是一个愚蠢的问题,但我似乎无法从谷歌找到任何答案。非常感谢您给予我的任何帮助。
我正在使用与flickr的Api相同的api构建一个带有Ajax的AIR应用程序,并使用共享密钥。问题是空中安装包包含所有来源,我不想泄露我的共享秘密。有没有办法做到这一点?我是否可以隐藏某些来源,或以某种方式在应用程序中包含此共享秘密而不放弃它?
感谢您的帮助。
答案 0 :(得分:2)
您可能希望使用EncryptedLocalStore安全地存储API密钥。
但是,您将无法将其与应用程序一起分发,因为商店的加密取决于运行应用程序的操作系统。
在app的安装上,种子商店的方法是:
使用此方法,用户永远不会知道您的密钥,但它将出现在应用程序的商店中。
答案 1 :(得分:0)
第一个问题 - 许可证是否允许您编写应用程序并将其交给其他人使用您的密钥,而不是拥有自己的密钥?
如果是这样,如果这是一个兼容AIR的SDK,他们应该推荐一些方法。
编辑:
This question描述了flickr如何通过密钥提供对额外资源的访问。如果这是一个AIR应用程序,您是否跳过沙盒箍提供同时的互联网和桌面应用程序?
答案 2 :(得分:0)
我会将密钥存储在服务器上并使用SSL(https://)和flash.net.URLLoader类检索它,或将其存储在加密的SQLite database中。如果您还没有使用它,显然数据库会产生更多的开销,所以如果您现在或将来不打算使用SQLite数据库,我会选择第一个选项。
答案 3 :(得分:0)
您可以使用像Pierre-Yves Gillier所提到的EncryptedLocalStore。有一种方法可以检测应用程序是否从第一次运行。但我会采用这种方法:
检查Encryptedlocalstore是否具有api密钥,如果没有从服务器amd中获取它,则存储它。