using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace FileServiceLogic
{
/// <summary>
/// 可序列化的文件数据对象
/// </summary>
[Serializable]
public class FileData
{
public static string EncryptFileData(string text, bool encryptfile)
{
if (string.IsNullOrEmpty(text))
return text;
byte[] content = System.Text.Encoding.Default.GetBytes(text);
byte[] cmp = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF };
bool findflag = false;
if (content.Length >= cmp.Length)
{
findflag = true;
for(int k=0;k<cmp.Length;k++)
{
if (cmp[k] != content[k])
{
findflag = false;
break;
}
}
}
if (encryptfile)//加密
{
if ( findflag == false)//
{
byte[] newContent = new byte[content.Length + cmp.Length];
for (int i = 0; i < cmp.Length; i++)
{
newContent[i] = cmp[i];
}
for (int i = 0; i < content.Length; i++)
{
newContent[i + cmp.Length] = (byte)(byte.MaxValue - content[i]);
}
content = newContent;
}
}
else//解密
{
if ( findflag)
{
byte[] newContent = new byte[content.Length - cmp.Length];
for (int i = cmp.Length; i < content.Length; i++)
{
newContent[i - cmp.Length] = (byte)(byte.MaxValue - content[i]);
}
content = newContent;
}
}
return System.Text.Encoding.Default.GetString(content);
}
}
}