0
我試圖在我的客戶端 - 服務器應用程序上實現加密,但自從我實現它之後,我無法在應用程序之間進行通信。加密流惡意使用
服務器:
private void CommsHandler(object client)
{
TcpClient tcpClient = (TcpClient)client;
StreamWriter writer;
StreamReader reader;
using (RijndaelManaged myRijindel = new RijndaelManaged())
{
myRijindel.GenerateKey();
myRijindel.GenerateIV();
ICryptoTransform encryptor = myRijindel.CreateEncryptor(myRijindel.Key, myRijindel.IV);
byte[] Key = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16};
byte[] IV = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16};
CryptoStream secureStreamRead = new CryptoStream(tcpClient.GetStream(), myRijindel.CreateDecryptor(Key,IV), CryptoStreamMode.Read);
CryptoStream secureStreamWrite = new CryptoStream(tcpClient.GetStream(), myRijindel.CreateEncryptor(Key, IV), CryptoStreamMode.Write);
reader = new StreamReader(secureStreamRead);
writer = new StreamWriter(secureStreamWrite);
}
NetworkStream network = tcpClient.GetStream();
char[] buffer = new char[4096];
while (true)
{
try
{
reader.Read(buffer, 0, buffer.Length);
}
catch (Exception)
{
InsertLog(2, "Communication with client closed");
break;
}
string message = new string(buffer);
Debug.Write(message);
doJob(message, writer, network);
for (int i = 0; i < buffer.Length; i++)
{
buffer[i] = (char)0;
}
}
tcpClient.Close();
}
客戶:
private void button1_Click(object sender, EventArgs e)
{
try
{
client.Connect(textBox1.Text, Convert.ToInt16(textBox2.Text));
using (RijndaelManaged myRijindel = new RijndaelManaged())
{
myRijindel.GenerateKey();
myRijindel.GenerateIV();
ICryptoTransform encryptor = myRijindel.CreateEncryptor(myRijindel.Key, myRijindel.IV);
byte[] Key = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16};
byte[] IV = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16};
CryptoStream secureStreamRead = new CryptoStream(client.GetStream(), myRijindel.CreateDecryptor(Key, IV), CryptoStreamMode.Read);
CryptoStream secureStreamWrite = new CryptoStream(client.GetStream(), myRijindel.CreateEncryptor(Key, IV), CryptoStreamMode.Write);
reader = new StreamReader(secureStreamRead);
writer = new StreamWriter(secureStreamWrite);
}
network = client.GetStream();
connected = true;
MessageBox.Show("Connected successfully", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show("Could not connect to server:" + Environment.NewLine + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
這有什麼錯我的執行?特別是在StreamWriter
和StreamReader
部分。還是其他地方的問題?
什麼是錯誤?什麼症狀?您只能盯着代碼來調試。 – usr