/// <summary> 数据第二层分配中心;把数据归类 </summary> internal void codeManage(StateBase stateOne, StateCode statecode) { if (statecode == null || stateOne == null) { return; } StateCode stateCode = null; switch (statecode.State) { case PasswordCode._commonCode: //普通数据信息;抛给普通Code去处理 stateCode = EncryptionDecrypt.deciphering(statecode.DateByte, stateOne); CommonCodeManage(stateOne, stateCode); break; case PasswordCode._bigDateCode: //抛给分包Code去处理 stateCode = EncryptionDecryptSeparateDate.FileDecrypt(statecode.DateByte, stateOne); CommonCodeManage(stateOne, stateCode); break; case PasswordCode._fileCode: //抛给文件处理器去处理;如果返回null就不用发送了 byte[] haveDate = FileStart.ReceiveDateTO(statecode.DateByte, stateOne); if (haveDate != null) { Send(stateOne, haveDate); } break; } }
/// <summary> /// 一个普通的对数据主体部分进行加密; /// </summary> /// <param name="date">要加密的数据</param> /// <param name="textCode"></param> /// <param name="state">StateBase</param> /// <returns>加密之后的数据</returns> private static byte[] encryptionTemporary(byte[] date, byte textCode, StateBase state) { if (date.Length > state.BufferSize - 20) { return(EncryptionDecryptSeparateDate.SendHeadEncryption(date, textCode, state)); //超出通过文件系统发送 } state.SendDateLabel = RandomPublic.RandomNumber(16787); //给发送的数据进行编号 byte[] dateOverall = ByteToDate.OffsetEncryption(date, state.SendDateLabel, 2); dateOverall[0] = PasswordCode._commonCode; dateOverall[1] = textCode; return(dateOverall); }