private void BtnGonderClient_Click(object sender, EventArgs e) { if (cbChoose.SelectedIndex == 1) { Crypto1 crypto1 = new Crypto1(); //string key = "asdfgytasdfgytrfghtuytorfghtuyto"; byte[] acikMetin = File.ReadAllBytes(m_ImageFilePath); byte[] sifreliMetin = crypto1.EncryptToByteArray(acikMetin, simetricKey); serverWriter.WriteLine(/*"UPLOAD_START_" +*/ Convert.ToBase64String(sifreliMetin) /*+ "_UPLOAD_END"*/); serverWriter.Flush(); lstMesajlarClient.Items.Add("Dosya yolu : " + m_ImageFilePath + " gönderildi."); LogWriter("Dosya yolu : " + m_ImageFilePath + " gönderildi."); } else if (cbChoose.SelectedIndex == 2) { Crypto2 crypto2 = new Crypto2(); string enryptoText = crypto2.EncryptKey(txtMesajClient.Text, simetricKey); enryptoText += ComputeSha256Hash(enryptoText); serverWriter.WriteLine(enryptoText); serverWriter.Flush(); //CLIENT'IN KENDI LISTBOX'INA EKLEME ISLEMI lstMesajlarClient.Items.Add(txtNick.Text + ": " + txtMesajClient.Text); LogWriter(txtNick.Text + ": " + txtMesajClient.Text); } else if (cbChoose.SelectedIndex == 3) { Crypto3 crypto3 = new Crypto3(); serverWriter.WriteLine(crypto3.Encrypto(txtMesajClient.Text)); serverWriter.Flush(); //CLIENT'IN KENDI LISTBOX'INA EKLEME ISLEMI lstMesajlarClient.Items.Add(txtNick.Text + ": " + txtMesajClient.Text); LogWriter(txtNick.Text + ": " + txtMesajClient.Text); } else { serverWriter.WriteLine(txtMesajClient.Text); serverWriter.Flush(); lstMesajlarClient.Items.Add(txtNick.Text + ": " + txtMesajClient.Text); LogWriter(txtNick.Text + ": " + txtMesajClient.Text); } txtMesajClient.Clear(); }
void ServeriDinle() { while (true) { string serverdanGelenMesaj = serverReader.ReadLine(); // Okunan deger if (cbChoose.SelectedIndex == 1) { if (!isSecretKey) { isSecretKey = true; label3.Text = Crypto1.DecryptSecretKey(serverdanGelenMesaj); simetricKey = label3.Text; lstMesajlarClient.Items.Add("SecretKey başarılı şekilde alındı."); LogWriter("SecretKey başarılı şekilde alındı."); } else { Crypto1 crypto1 = new Crypto1(); MessageBox.Show("Desifrelenecek verinin çozulecegi yolu seciniz."); UnicodeEncoding ue = new UnicodeEncoding(); Byte[] buffer = Convert.FromBase64String(serverdanGelenMesaj); byte[] plainText = crypto1.DecryptToByteArray(buffer, simetricKey); //File.WriteAllBytes(@"C:\Users\Hknaksoyy\Desktop\cipherText.jpg", plainText); //linkFilePath_LinkClicked(true); File.WriteAllBytes(dataPath, plainText); lstMesajlarClient.Items.Add("Desifreleme islemi tamamlandi"); LogWriter("Desifreleme islemi tamamlandi"); } } else if (cbChoose.SelectedIndex == 2) { if (!isSecretKey) { isSecretKey = true; label3.Text = Crypto2.DecryptSecretKey(serverdanGelenMesaj); simetricKey = label3.Text; LogWriter("Serverdan Gelen Mesaj: " + serverdanGelenMesaj); LogWriter("Cozumlenmis Simetrik Sifre: " + simetricKey); lstMesajlarClient.Items.Add("SecretKey başarılı şekilde alındı."); LogWriter("SecretKey başarılı şekilde alındı."); } else { Crypto2 crypto2 = new Crypto2(); string decryptoHash = serverdanGelenMesaj.Substring((serverdanGelenMesaj.Length - 64), 64); string data = serverdanGelenMesaj.Substring(0, (serverdanGelenMesaj.Length - 64)); if (decryptoHash == ComputeSha256Hash(data)) { lstMesajlarClient.Items.Add("Server: " + crypto2.DecryptKey(data, simetricKey)); label3.Text = serverdanGelenMesaj; LogWriter(serverdanGelenMesaj); } } } else if (cbChoose.SelectedIndex == 3) { Crypto3 crypto3 = new Crypto3(); lstMesajlarClient.Items.Add("Server: " + crypto3.Decrypto(serverdanGelenMesaj)); label3.Text = serverdanGelenMesaj; LogWriter(serverdanGelenMesaj); } else { lstMesajlarClient.Items.Add("Server: " + serverdanGelenMesaj); LogWriter("Server: " + serverdanGelenMesaj); } } }
void Dinle() { // Bağlanan kullanıcı sckKullanici isimli Socket nesnesine alındı. sckKullanici = dinleyici.AcceptSocket(); LogWriter("Kullanıcı geldi"); // NetworkStream, ağ üzerine yazmak için kullanılır. ns = new NetworkStream(sckKullanici); // Kullanıcıya mesaj göndermek ve almak için StreamWriter içe NetworkStream üzerine yazacağız. clientWriter = new StreamWriter(ns, Encoding.ASCII); clientReader = new StreamReader(ns, Encoding.ASCII); while (true) { string clienttanGelenMesaj = clientReader.ReadLine(); if (comboBox1.SelectedIndex == 1) { Crypto1 crypto1 = new Crypto1(); UnicodeEncoding ue = new UnicodeEncoding(); Byte[] buffer = Convert.FromBase64String(clienttanGelenMesaj); byte[] plainText = crypto1.DecryptToByteArray(buffer, simetricKey); File.WriteAllBytes(dataPath, plainText); lstMesajlarServer.Items.Add("Desifreleme islemi tamamlandi"); LogWriter("Desifreleme islemi tamamlandi"); //File.WriteAllBytes(@"C:\Users\Hknaksoyy\Desktop\cipherText.jpg", plainText); //LinkLabelLinkClickedEventArgs ex = new LinkLabelLinkClickedEventArgs(); //LinkFilePath_LinkClicked = true; //this.LinkFilePath_LinkClicked += this.LinkFilePath_LinkClicked; } else if (comboBox1.SelectedIndex == 2) { if (!string.IsNullOrEmpty(clienttanGelenMesaj)) { Crypto2 crypto2 = new Crypto2(); string decryptoHash = clienttanGelenMesaj.Substring((clienttanGelenMesaj.Length - 64), 64); string data = clienttanGelenMesaj.Substring(0, (clienttanGelenMesaj.Length - 64)); if (ComputeSha256Hash(data) == decryptoHash) { lstMesajlarServer.Items.Add(connectName + ": " + crypto2.DecryptKey(data, simetricKey)); label2.Text = clienttanGelenMesaj; LogWriter(clienttanGelenMesaj); } } } else if (comboBox1.SelectedIndex == 3) { Crypto3 crypto3 = new Crypto3(); lstMesajlarServer.Items.Add(connectName + ": " + crypto3.Decrypto(clienttanGelenMesaj)); label2.Text = clienttanGelenMesaj; LogWriter(clienttanGelenMesaj); } // Acik metin şeklinde iletimi saglar. else { if (clienttanGelenMesaj.EndsWith(" isimli kullanici geldi.")) { // Gelen kullanıcının tanımlanmasıdır. Console.WriteLine(clienttanGelenMesaj); connectName = clienttanGelenMesaj.Substring(0, clienttanGelenMesaj.Length - 24); lstMesajlarServer.Items.Add(clienttanGelenMesaj); LogWriter(clienttanGelenMesaj); } else { lstMesajlarServer.Items.Add(connectName + ": " + clienttanGelenMesaj); LogWriter(connectName + ": " + clienttanGelenMesaj); } } } }
private void BtnGonderServer_Click(object sender, EventArgs e) { if (comboBox1.SelectedIndex == 1) { if (!isSecretKey && !string.IsNullOrEmpty(txtMesajServer.Text)) { string publicKeyXML = String.Format(@"<RSAKeyValue> <Modulus>{0}</Modulus> <Exponent>{1}</Exponent> </RSAKeyValue>", ConfigurationSettings.AppSettings.Get("Modulus"), ConfigurationSettings.AppSettings.Get("Exponent")); string encryptSecretKey = Crypto2.EncryptSecretKey(txtMesajServer.Text, publicKeyXML); LogWriter("Sifrelenecek Mesaj : " + txtMesajServer.Text); LogWriter("Sifrelenmis Gizli Anahtar : " + encryptSecretKey); clientWriter.WriteLine(encryptSecretKey); clientWriter.Flush(); isSecretKey = true; } else { Crypto1 crypto1 = new Crypto1(); byte[] acikMetin = File.ReadAllBytes(m_ImageFilePath); byte[] sifreliMetin = crypto1.EncryptToByteArray(acikMetin, simetricKey); clientWriter.WriteLine(/*"UPLOAD_START_" +*/ Convert.ToBase64String(sifreliMetin) /*+ "_UPLOAD_END"*/); clientWriter.Flush(); lstMesajlarServer.Items.Add("Dosya yolu : " + m_ImageFilePath + " gönderildi."); LogWriter("Dosya yolu : " + m_ImageFilePath + " gönderildi."); } } else if (comboBox1.SelectedIndex == 2) { //Gizli anahtarın paylaşımını sağlar. if (!isSecretKey && !string.IsNullOrEmpty(txtMesajServer.Text)) { string publicKeyXML = String.Format(@"<RSAKeyValue> <Modulus>{0}</Modulus> <Exponent>{1}</Exponent> </RSAKeyValue>", ConfigurationSettings.AppSettings.Get("Modulus"), ConfigurationSettings.AppSettings.Get("Exponent")); string encryptSecretKey = Crypto2.EncryptSecretKey(txtMesajServer.Text, publicKeyXML); LogWriter("Sifrelenecek Mesaj : " + txtMesajServer.Text); LogWriter("Sifrelenmis Gizli Anahtar : " + encryptSecretKey); clientWriter.WriteLine(encryptSecretKey); clientWriter.Flush(); simetricKey = txtMesajServer.Text; isSecretKey = true; } else { Crypto2 crypto2 = new Crypto2(); string encrypted = crypto2.EncryptKey(txtMesajServer.Text, simetricKey); //GONDERILEN KISIM string encryptedHash = encrypted; encryptedHash += ComputeSha256Hash(encrypted); clientWriter.WriteLine(encryptedHash); clientWriter.Flush(); //SERVER'IN KENDI LISTBOX'INA EKLEME ISLEMI lstMesajlarServer.Items.Add("Server: " + txtMesajServer.Text); LogWriter("Server: " + txtMesajServer.Text); } } else if (comboBox1.SelectedIndex == 3) { Crypto3 crypto3 = new Crypto3(); string encrypted = crypto3.Encrypto(txtMesajServer.Text); //GONDERILEN KISIM clientWriter.WriteLine(encrypted); clientWriter.Flush(); //SERVER'IN KENDI LISTBOX'INA EKLEME ISLEMI lstMesajlarServer.Items.Add("Server: " + txtMesajServer.Text); LogWriter("Server: " + txtMesajServer.Text); } else { clientWriter.WriteLine(txtMesajServer.Text); clientWriter.Flush(); lstMesajlarServer.Items.Add("Server: " + txtMesajServer.Text); LogWriter("Server: " + txtMesajServer.Text); } //GONDERIM ISLEMINDEN SONRA TEXT BOLGESI TEMIZLENIR. txtMesajServer.Clear(); }