【原】就IOS发布app时如何保护文本资源的一个方法
2014-05-11 13:29
501 查看
近期的一个app是本地的,数据源来自于本地的一个.json文件,里面的数据是这个app的灵魂。近期快发布该app了,很担心发布后的.ipa包被竞争者解开然后信息发生泄漏。我的处理策略是:打包的时候放的是一个字符串加密过的json文件,就算别人打开也是乱码。在程序加载时就对该文件进行解码,在沙盒里面生成一个解码后的json文件,在程序退出时删除该临时文件。这样可以保证在不影响现有代码的情况下在一定程度上保护数据。电脑出了点故障,随手用C++在windows下实现了一番,文件先用txt,加密算法先用简单的ascii移位。真正要用的时候同理,加密算法可以用其他优秀的加密算法:
当然,这种方法有个缺陷,对于非常大的文本文件可能会有点耗时,但是正常情况下几乎感觉不出来。不知道还有没有其他更好的方式保护APP包内的文本以及图片资源呢
#include "stdafx.h" #include <iostream> #include <fstream> #include <string> using namespace std; #define KEY 1 int _tmain(int argc, _TCHAR* argv[]) { string oneLineStr; ifstream inf; inf.open("ReadMe.txt"); ofstream outf; outf.open("encode.txt"); ofstream outf_recovery; outf_recovery.open("recovery.txt"); while (getline(inf, oneLineStr)) { cout<<"加密前:"<<oneLineStr<<endl; size_t length = oneLineStr.size(); for (size_t i = 0; i < length; i++) { oneLineStr[i] = (char)(oneLineStr[i] + KEY);//ascii码改变 } cout<<"该行加密后:"<<oneLineStr<<endl; outf<<oneLineStr<<endl; } outf.close(); inf.clear(); cout<<"开始恢复文件============================"; ifstream inf_encode; inf_encode.open("encode.txt"); while (getline(inf_encode, oneLineStr)) { size_t length = oneLineStr.size(); for (size_t i = 0; i < length; i++) { oneLineStr[i] = (char)(oneLineStr[i] - KEY);//ascii码改变 } cout<<"解密后:"<<oneLineStr<<endl; outf_recovery<<oneLineStr<<endl; } inf.close(); inf_encode.close(); outf_recovery.close(); int tmp = 0; cin>>tmp; return 0; }
当然,这种方法有个缺陷,对于非常大的文本文件可能会有点耗时,但是正常情况下几乎感觉不出来。不知道还有没有其他更好的方式保护APP包内的文本以及图片资源呢
相关文章推荐
- 【如何快速的开发一个完整的iOS直播app】(编解码原理)
- 如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1
- 【如何快速的开发一个完整的iOS直播app】(原理篇)
- [ios][opengles]GLKit如何搭一个app的框架
- [iOS]如何向 appstore 查询已发布 APP 的信息?
- 【如何快速的开发一个完整的iOS直播app】(播放篇)
- 【如何快速的开发一个完整的iOS直播app】(原理篇)
- 如何快速的开发一个完整的iOS直播app(原理篇)
- Flash发布iOS应用全攻略(二)——如何成为一个合法的iOS开发者
- 如何用正则将多个空格看成一个空格结合spllit()方法将文本数据入库
- 如何判断一个类是否支持某属性和方法以及如何判断IOS的版本
- iOS 国际化最新最全教程+如何快速国际化一个现成APP
- 【如何快速的开发一个完整的iOS直播app】(播放篇)
- 【如何快速的开发一个完整的iOS直播app】(采集篇)
- IOS APP 如何在真机设备上测试及发布流程(Xcode6.1环境)
- 如何快速的开发一个完整的iOS直播app(原理篇)
- 如何快速的开发一个完整的iOS直播app(原理篇)
- iOS APP如何发布测试(包括AdHoc版本和AppStore版本)
- 如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1
- IOS项目发布时如何填写Itunes Connect的app信息