public void addItemsMethod(string packetInfo, byte[] PayLoadData) { bool isToClient = false; string[] sData = packetInfo.Split(new char[] { ',' }); List <byte[]> data = new List <byte[]>(); byte[] useIv = new byte[4]; ListViewItem lvi = new ListViewItem((listView1.Items.Count + 1).ToString()); foreach (string s in sData) { if (s.Contains("ToClient")) { isToClient = true; lvi.BackColor = Color.FromArgb(229, 235, 224); } lvi.SubItems.Add(s); } if (PayLoadData[0] != 0x0F) { byte[] decryptData = new byte[PayLoadData.Length - 4]; Buffer.BlockCopy(PayLoadData, 4, decryptData, 0, PayLoadData.Length - 4); byte[] tempData; if (isToClient) { useIv = clientRecv.getIv(); tempData = clientRecv.crypt(decryptData); Console.WriteLine(BitTools.GetHexString(tempData)); if (tempData[0] == 0x6D)//如果是验证账号密码的封包 接受的时候需要再换一次iv才能正确解包 { clientRecv.updateIv(); needUpdateIv = true; } } else { useIv = clientSend.getIv(); tempData = clientSend.crypt(decryptData); } data.Add(PayLoadData); data.Add(tempData); } else { data.Add(PayLoadData); } lvi.SubItems[5].Text = BitTools.GetHexString(useIv); lvi.Tag = data; listView1.Items.Add(lvi); }
private void listView1_SelectedIndexChanged(object sender, EventArgs e) { if (listView1.SelectedIndices != null && listView1.SelectedIndices.Count > 0) { ListView.SelectedIndexCollection c = listView1.SelectedIndices; ListViewItem selectItem = listView1.Items[c[0]]; List <byte[]> data = (List <byte[]>)selectItem.Tag; if (data.Count == 2) { richTextBox1.Text = string.Format("[原始数据 长度:{0}]\n{1} \n[解密数据 长度:{2}]\n{3} \n[Ascii]\n{4}", data[0].Length, BitTools.GetHexString(data[0]), data[1].Length, BitTools.GetHexString(data[1]), Encoding.ASCII.GetString(data[1])); } else { richTextBox1.Text = string.Format("[原始数据 长度:{0}]\n{1} ", data[0].Length, BitTools.GetHexString(data[0])); } } }
public override string ToString() { return("IV: " + BitTools.GetHexString(this.iv)); }