1. Anasayfa
  2. Visual Studio C#

C# XOR (Bitwise) İle String Şifreleme

C# XOR (Bitwise) İle String Şifreleme
0

XOR(Özel Veya) Operatörü aldığı değerler üzerinde XOR işlemi gerçekleştirir kısaca

X
Y
Sonuç
1
1
0
1
0
1
0
1
1
0
0
0

ş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

  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.bilisimogretmeni.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);
        }

Bu İçeriğe Tepkin Ne Oldu?
  • 7
    ba_ar_l_
    Başarılı
  • 0
    gayet_yi
    Gayet İyi
  • 0
    te_ekk_rler
    Teşekkürler
  • 1
    anlamad_m
    Anlamadım
  • 1
    yetersiz
    Yetersiz
Subscribe
Bildir
guest

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.

0 Yorum
Inline Feedbacks
View all comments