folder Tahribat.com Forumları
linefolder C - C++
linefolder C++ Xor İle Şifrelemek ?



C++ Xor İle Şifrelemek ?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Kirmizi27
    Kirmizi27's avatar
    Kayıt Tarihi: 12/Ekim/2015
    Erkek

    c'de bir stringi xorlayarak nasıl şifreleyebilir ve çözebilirim ? yardımcı olabilecek şimdiden teşekkürler


    Aşk
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    iQsuz
    iQsuz's avatar
    Kayıt Tarihi: 21/Nisan/2008
    Erkek

    hocam biraz daha açsana.

    ne yapmak istiyosun tam olarak?

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    niRvana_GG
    niRvana_GG's avatar
    Kayıt Tarihi: 01/Kasım/2012
    Erkek

    Ne için istediğini söylersen daha doğru bir cevap verilebilir ama en basitinden birşeyi xor ile şöyle şifreleyebilirsin.

    #include <stdio.h>
    #include <stdlib.h>


    int main()
    {
         char testStr[] = "Test Yazisi";
         size_t i, size = strlen(testStr);
         unsigned seed;

         printf("Seed degerini girin : ");
         scanf("%u", &seed);

         srand(seed);

         for(i = 0; i < size; ++i)
              testStr[i] ^= rand();

         printf("%s\n", testStr);

         srand(seed);
         for(i = 0; i < size; ++i)
              testStr[i] ^= rand();

         printf("%s\n", testStr);

         system("pause");
         return 0;
    }

    niRvana_GG tarafından 19/Oca/16 02:49 tarihinde düzenlenmiştir
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tarikat Şeyhi
    HolyOne
    HolyOne's avatar
    Kayıt Tarihi: 01/Haziran/2002
    Erkek

    aslında string şifreleme diye bişey yok, Şifreleme bit bazında yapılır, stringi byte arraye çevirmekle başla.

    xorladiktan sonra geriye string istiyorsan çıktının base64 ünü falan alıp string versiyonunu bastır


    Nush ile uslanmayanı etmeli tekdir, Tekdir ile uslanmayanın hakkı kötektir!
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Esconda
    Esconda's avatar
    Banlanmış Üye
    Kayıt Tarihi: 28/Eylül/2007
    Erkek

    C üzerinden anlatıyorum , önce mantığı kavra.Mesela 1000 1010 1010 1100 gibi 16 bitlik bir bitstringin var. Bunu 1000 1000 1000 1000 ile xorlarsan ortaya şifrelenmiş bir değer ortaya koyarsın.Bu şifreyi çözmek için ise çıkan değeri  tekrar 1000 1000 1000 1000 ile xorlarsan baştaki bitstringi elde edersin.

     Basitçe

     

    #include
    #include
    #include //bu kütüphaneyi yüksek bitli değerleri tanımlamada kullandığımız uint16_t , uint32_t , uint64_t tanımlarken yazmamız gerekli.
    
    int main(){
    
    uint16_t sonuc; //xorlama işlemi için sonuç değişkeni
    
    uint16_t baslangicadonus; // burada ise dediğim gibi b değeri ile sonuç değeri tekrar xorlanırsa başlangıç , yani şifrelenmemiş değeri elde edersin
    
    
    char s[16 + 1]; // a nın yazdırma için for değeri için değişkeni
    int i; //a nın yazdırma arttırma için değişkeni
    
    char d[16+1]; //b için yazdırma
    int k; //b için yazdırma
    
    char f[16+1]; //sonuc için yazdırma
    int j; //sonuc için yazdırma
    
    char z[16+1]; //baslangicadon için yazdırma
    int p; //baslangicadon için yazdırma
    
    uint16_t a=0x8AACu; //Bu yukarıdaki verdiğim ilk bitstringin hexadecimal gösterimi
    uint16_t b=0x8888u; //Buda xorlayacağın sabit değer ve ikisini xorladığında ortaya şifrelenmiş bir kod çıkar.Bu kodu 1000 1000 1000 1000 değerini bilmeyen kimse anlayamaz.Bunu sadece sen bu değerle xorlayarak elde edebilirsin.
    
    sonuc=a ^ b; // burada xorlama işlemini yapıyoruz.Bu "^" da bitwise operatörlerinde xor işlemi demektir.
    
    baslangicadon=sonuc ^ b; //burada tekrar sadece senin bilebileceğin 1000 1000 1000 1000 , hexadecimal olarak "0x8888" ile xorluyoruz ve başlangıç değerimiz "a" yı elde ediyoruz
    
    //Şimdi sana bu bit değerlerini görebilmemiz için özel bir printf fonksiyonu veriyorum.Böylece konsolda( siyah ekranda) görerek anlayabilirsin.4 tane değeride yazdırıyoruz a, b, sonuc,baslangicadon
    
    for (i = 0; i < 16; i++)           {
    
    s[15 - i] = (a & (1 << i)) ? '1' : '0'; // bu işlemin genel açıklaması: char değeri örnek olarak eğer i=0 ise "0." biti yazacağız işlemini yapar "1" sola 0 kez shiftlenir(kaydırılır) sonra "a" nın "0". biti ile karşılaştırılır.eğer "a" nın "0". biti 1 ise "1" yazar değil ise 0 yazar
    
    }
    
    for (k = 0; k < 16; k++)           {
    
    d[15 - k] = (b & (1 << k)) ? '1' : '0'; 
    
    }
    
    for (j = 0; j < 16; j++)           {
    
    f[15 - j] = (sonuc & (1 << j)) ? '1' : '0'; 
    
    }
    
    for (p = 0; p < 16; p++)           {
    
    z[15 - p] = (baslangicadon & (1 << p)) ? '1' : '0'; 
    
    }
    
    s[16] = '\0';
    d[16] = '\0';
    f[16] = '\0';
    z[16] = '\0';
    
    //print işlemini yaptırıyoruz
    
    printf(" %s %s %s %s  ", a,b,sonuc,baslangicadon);
    
     return 0;
    
    }

     

     

    KODU GELİŞİGUZEL YAZDIM, VAKTİM OLMADIĞI İÇİN DENEMEDİM.SORUN ÇIKARSA, SONUCU GÖREMİYORSAN YAZ BURAYA, EDİTLERİZ

     

     

     

     

     

     

     

     


    https://t.me/pump_upp
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JPriest
    JPriest's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    Ya da şöyle yapabilirsin: http://bfy.tw/3neb

     


    Sen hiç kaval çaldın mı?
Toplam Hit: 2732 Toplam Mesaj: 6
c şifre xor