【原】就IOS發布app時如何保護文本資源的一個方法


近期的一個app是本地的,數據源來自於本地的一個.json文件,里面的數據是這個app的靈魂。近期快發布該app了,很擔心發布后的.ipa包被競爭者解開然后信息發生泄漏。我的處理策略是:打包的時候放的是一個字符串加密過的json文件,就算別人打開也是亂碼。在程序加載時就對該文件進行解碼,在沙盒里面生成一個解碼后的json文件,在程序退出時刪除該臨時文件。這樣可以保證在不影響現有代碼的情況下在一定程度上保護數據。電腦出了點故障,隨手用C++在windows下實現了一番,文件先用txt,加密算法先用簡單的ascii移位。真正要用的時候同理,加密算法可以用其他優秀的加密算法:

#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包內的文本以及圖片資源呢


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM