小右保存的是账号密码到本地,采用的方式比较普通。下面简单给大家分享一下基本原理,大家可以后续完善。
//随便写一个账号的结构体 CRC加密
public struct NormalAccountInfo
{
public string UID ;
public uint CRC;
public uint CRC2;
}
//账户数据一些操作方法
class AccountData
{
NormalAccountInfo AccountInfo;
//保存账户数据
public bool SaveAccountData()
{
MemoryStream ms=new MemoryStream();
BinaryWriter bw =new BinaryWriter(ms);
bw.Write(AccountInfo.UID);
bw.Write(AccountInfo.CRC);
bw.Write(AccountInfo.CRC2);
if( !SaveLocalFile("LocalData.dat",ms.ToArray()))
{
bw.Close();
return false;
}
else
{
bw.Close();
return true;
}
}
//保存到文件
bool SaveLocalFile(string fileName,byte[] data)
{
string path=Application.dataPath+"/data/"+"fileName"
if(File.Exists(path))
File.Delete(path)
FileStream fs=new FileStream(path,FileMode.CreateNew);
if(fs==null)
return false;
fs.Write(data,0,data.Length);
fs.Close();
return true;
}
//下载数据
public void LoadAccountData()
{
byte[] data =GetLocalFile("LocalData.dat");
if(data==null)
return;
MemoryStream ms=new MemoryStream(data);
BinaryReader br=new BinaryReader(ms);
//按着定义的类型读出数据
AccountInfo.UID=br.ReadString();
AccountInfo.CRC=br.ReadUInt32();
}
//获得本地文件
public byte[] GetLocalFile(string FileName)
{
string path=Application.dataPath+"/data/"+"fileName";
if(File.Exists(path) == false)
return null;
FileStream fs = new FileStream(path, FileMode.Open);
if (fs == null || fs.Length == 0)
return null;
byte[] data = new byte[fs.Length];
fs.Read(data, 0, data.Length);
fs.Close();
return data;
}
}