6 iphone encryption xcode objective-c ios
我计划为iOS开发一个应用程序,并希望使用HTML5,CSS和Javascript.最终应用程序应该使用Xcode和UIWebView.实现为本机应用程序.
我可以在最终应用中隐藏或保护我的html文件吗?我必须将文件放在Xcode中名为"Supporting Files"的文件夹中.因此,每个人都可以通过提取.ipa文件来购买应用程序后查看纯文件,对吗?
有多种方法可以保护您的数据,具体取决于您希望保护的好坏程度.对于仅针对偶然黑客的极少保护,您可以使用字符串混淆算法来混淆和去混淆HTML内容NSString.这是一个这样做的例子.我没有使用那个特定的代码,但我也不是真的建议混淆作为一种技术,除非数据真的不是很敏感.
更好的解决方案是加密 HTML内容,虽然这样做更多,并且可能涉及一些导出控制问题,具体取决于您的位置以及您分发应用程序的位置.
对于加密,您有很多选择.
1) 这是一个开源实现,提供类似的安全版本NSUserDefaults.但是,我没有registerDefaults:在该代码中看到相同的内容,因此您的应用程序第一次运行时可能需要从Web下载内容.但是,您可以加密并将其存储PDKeychainBindings为字符串值.在后续运行中,您可以提取存储的HTML "文件",如下所示:
NSString* webPageContent = 
    [[PDKeychainBindings sharedKeychainBindings] valueForKey: @"index.html"];
2)这是另一个提供AES加密包装的开源项目.在发布应用程序之前,您可以编写一些非生产代码,以将HTML内容加密为可作为捆绑资源的加密数据文件.当你的应用程序运行时,它会打开文件并将其解密为NSString这可以给你的对象UIWebView通过loadHTMLString: baseURL:.
3)最后,这是使用底层CommonCrypto API保护包资源的另一个例子.此示例使用自定义生成步骤自动加密特定文件夹中的资源,如果受保护的HTML内容经常合理地更改,这将节省您一些时间.
pbx*_*pbx -4
您可以在代码中创建所有 HTML 等,然后使用UIWebView's
- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL
以纯文本形式手动加载每个 HTML 字符串。但是,我建议您不要这样做。如果有人真的想从编译的源代码中隔离每个字符串,这对他来说是可能的(除非你真的做要求很高的事情)。
大多数用户根本不关心 ipa 文件里面的内容。如果您可以接受检查的人数少于 1%,则不必太担心此主题。
另一个方面也是可能的(即使这不是一个奇妙的主意):您可以将 UIWebView 指向只有您和您的应用程序知道的秘密网站。这是绝对不可取的。