C# XOR (Bitwise) İle String Şifreleme

ravex

Ultra Member
Joined
Jul 30, 2019
Topics
217
Messages
656
Reaction score
359
Location
Turkey
XOR(Özel Veya) Operatörü aldığı değerler üzerinde XOR işlemi gerçekleştirir kısaca
1578485032664.png
şeklinde sonuç üretir. Bu işlemi yapabilmek için girilen değerleri binary’e çevirdikten sonra XOR işlemine tabi tutmamız lazım
14 = 00001110 (Binary Karşılığı)
11 = 00001011 (Binary Karşılığı)
————-
5 = 00000101 (Binary Karşılığı) gibi birsonuç olacaktır. C#’da sayıları XOR işlemine tabi tutmak için “^” işareti kullanılır.
Yapacağımız örnekte kullanıcı bir metin girecek, girilen metindeki her karakter önce ascii daha sonrada binary çevirimi yapılacak ve bizim belirlediğimiz bir sayı ile XOR işlemine tabi tututalcak kodlarımız

C#:
Console.WriteLine("Kelime Girin");
          string s = Console.ReadLine();
          int sabit =11;
          string sonuc = "";
          foreach (char c in s)
          {
              int yeni=System.Convert.ToInt32(c)^sabit;
              Console.WriteLine(Binary(System.Convert.ToInt32(c)) + "-"+Binary(sabit)+"= "+ Binary(yeni)+" "+Convert.ToChar(yeni));
              sonuc += Convert.ToChar(yeni);// https://www.realitycheats.com/
          }
          Console.WriteLine(sonuc);           
          Console.ReadKey();
      }
      static string Binary(int n)
      {
          char[] b = new char[32];
          int pos = 31;
          int i = 0;
          while (i < 32)
          {
              if ((n & (1 << i)) != 0)
              {
                  b[pos] = '1';
              }
              else
              {
                  b[pos] = '0';
              }
              pos--;
              i++;
          }
          return new string(b);
      }

 

Top