C++ İle Şifreleme Programı Kodlayalım

ByFelez

Uzman üye
9 Tem 2013
1,818
1,774
Selamın Aleyküm..

Bu konuda C++ dilini kullanarak girdiğimiz metni şifreleyen bir programı adım adım kodlayalım.

------------------------------------------------------------------------------------

Bu program için Caesar şifreleme algoritmasını kullanacağız.

Bu Algoritma ;


Metni belirli bir kaydırma miktarıyla (şifreleme anahtarı) ileri doğru kaydırarak şifreleme işlemi gerçekleştirir.

İlk olarak kullanacağımız kütüphaneleri projemize ekleyelim.

C++:
#include <iostream>
#include <cstring>

Ardından Caesar şifreleme için gerekli fonksiyon kısmını kodlayalım.

C++:
std::string encrypt(const std::string& text, int shift) {
    std::string result = "";

    for (char ch : text) {
        if (isalpha(ch)) {
            char base = isupper(ch) ? 'A' : 'a';
            result += static_cast<char>((ch - base + shift) % 26 + base);
        } else {
            result += ch;
        }
    }

    return result;
}

Caesar şifre çözme fonksiyonunu kodlayalım.

C++:
std::string decrypt(const std::string& text, int shift) {
    return encrypt(text, 26 - shift);
}

int main() {
    std::string originalText;
    int shift;

Kullanıcıdan şifrelenecek metni ve kaydırma oranını alalım.

C++:
std::cout << "Şifrelenecek metni girin: ";
    std::getline(std::cin, originalText);

    std::cout << "Kaydırma miktarını girin: ";
    std::cin >> shift;

Metni şifreleyerek ve çıktıyı gösterelim.

C++:
std::string encryptedText = encrypt(originalText, shift);
    std::cout << "Şifrelenmiş metin: " << encryptedText << std::endl;

Şifreli metnin çözülmüş halini gösterelim. Bunun sebebi şifrelenmiş metnin çözülmüş versiyonu ile orijinal metnimizin aynı olup olmadığını doğrulamak.

C++:
 std::string decryptedText = decrypt(encryptedText, shift);
    std::cout << "Çözülmüş metin: " << decryptedText << std::endl;

    return 0;
}

Bütün kodlar ;

6xdysh2.PNG


C++:
#include <iostream>
#include <cstring>

std::string encrypt(const std::string& text, int shift) {
    std::string result = "";

    for (char ch : text) {
        if (isalpha(ch)) {
            char base = isupper(ch) ? 'A' : 'a';
            result += static_cast<char>((ch - base + shift) % 26 + base);
        } else {
            result += ch;
        }
    }

    return result;
}

std::string decrypt(const std::string& text, int shift) {
    return encrypt(text, 26 - shift);
}

int main() {
    std::string originalText;
    int shift;

    std::cout << "Şifrelenecek metni girin: ";
    std::getline(std::cin, originalText);

    std::cout << "Kaydırma miktarını girin: ";
    std::cin >> shift;

    std::string encryptedText = encrypt(originalText, shift);
    std::cout << "Şifrelenmiş metin: " << encryptedText << std::endl;

    std::string decryptedText = decrypt(encryptedText, shift);
    std::cout << "Çözülmüş metin: " << decryptedText << std::endl;

    return 0;
}

dqcfjbf.jpg


Saygılarımla... ByFelez
 
Son düzenleme:

Çokgen

Katılımcı Üye
4 Eyl 2023
412
194
Ellerinize sağlık hocam yine harika bir konu, bende böyle bir konu açıcaktım ama gerek kalmadı. Emeğinize sağlık.
 

Crackmeci

Katılımcı Üye
28 Haz 2020
312
170
Web
Selamın Aleyküm..

Bu konuda C++ dilini kullanarak girdiğimiz metni şifreleyen bir programı adım adım kodlayalım.

------------------------------------------------------------------------------------

Bu program için Caesar şifreleme algoritmasını kullanacağız.

Bu Algoritma ;


Metni belirli bir kaydırma miktarıyla (şifreleme anahtarı) ileri doğru kaydırarak şifreleme işlemi gerçekleştirir.

İlk olarak kullanacağımız kütüphaneleri projemize ekleyelim.

C++:
#include <iostream>
#include <cstring>

Ardından Caesar şifreleme için gerekli fonksiyon kısmını kodlayalım.

C++:
std::string encrypt(const std::string& text, int shift) {
    std::string result = "";

    for (char ch : text) {
        if (isalpha(ch)) {
            char base = isupper(ch) ? 'A' : 'a';
            result += static_cast<char>((ch - base + shift) % 26 + base);
        } else {
            result += ch;
        }
    }

    return result;
}

Caesar şifre çözme fonksiyonunu kodlayalım.

C++:
std::string decrypt(const std::string& text, int shift) {
    return encrypt(text, 26 - shift);
}

int main() {
    std::string originalText;
    int shift;

Kullanıcıdan şifrelenecek metni ve kaydırma oranını alalım.

C++:
std::cout << "Şifrelenecek metni girin: ";
    std::getline(std::cin, originalText);

    std::cout << "Kaydırma miktarını girin: ";
    std::cin >> shift;

Metni şifreleyerek ve çıktıyı gösterelim.

C++:
std::string encryptedText = encrypt(originalText, shift);
    std::cout << "Şifrelenmiş metin: " << encryptedText << std::endl;

Şifreli metnin çözülmüş halini gösterelim. Bunun sebebi şifrelenmiş metnin çözülmüş versiyonu ile orijinal metnimizin aynı olup olmadığını doğrulamak.

C++:
 std::string decryptedText = decrypt(encryptedText, shift);
    std::cout << "Çözülmüş metin: " << decryptedText << std::endl;

    return 0;
}

Bütün kodlar ;

6xdysh2.PNG


C++:
#include <iostream>
#include <cstring>

std::string encrypt(const std::string& text, int shift) {
    std::string result = "";

    for (char ch : text) {
        if (isalpha(ch)) {
            char base = isupper(ch) ? 'A' : 'a';
            result += static_cast<char>((ch - base + shift) % 26 + base);
        } else {
            result += ch;
        }
    }

    return result;
}

std::string decrypt(const std::string& text, int shift) {
    return encrypt(text, 26 - shift);
}

int main() {
    std::string originalText;
    int shift;

    std::cout << "Şifrelenecek metni girin: ";
    std::getline(std::cin, originalText);

    std::cout << "Kaydırma miktarını girin: ";
    std::cin >> shift;

    std::string encryptedText = encrypt(originalText, shift);
    std::cout << "Şifrelenmiş metin: " << encryptedText << std::endl;

    std::string decryptedText = decrypt(encryptedText, shift);
    std::cout << "Çözülmüş metin: " << decryptedText << std::endl;

    return 0;
}

dqcfjbf.jpg


Saygılarımla... ByFelez
Hocam elinize sağlık ama bir şey soracağım ascii tablosunda Türkçe karakterler olmadığı için galiba Türkçe harf kullanıldığı zaman ya ?(soru işareti) koyuyor ya da sembolleri kullanıyor bu programda dizileri kullanmadan nasıl Türkçe karakter desteği ekleyebiliriz. Dizileri kullanmadan derken kastettiğim [a,b,c,ç,d,e,f,g,ğ...] şeklinde bir dizi tanımlayıp index numarasını kaydırmadan gene ascii olarak nasıl yapabiliriz ekstra yöntem olarak.
dxv6v4q.PNG
 
Son düzenleme:

ByFelez

Uzman üye
9 Tem 2013
1,818
1,774
Hocam elinize sağlık ama bir şey soracağım ascii tablosunda Türkçe karakterler olmadığı için galiba Türkçe harf kullanıldığı zaman ya ?(soru işareti) koyuyor ya da sembolleri kullanıyor bu programda dizileri kullanmadan nasıl Türkçe karakter desteği ekleyebiliriz. Dizileri kullanmadan derken kastettiğim [a,b,c,ç,d,e,f,g,ğ...] şeklinde bir dizi tanımlayıp index numarasını kaydırmadan gene ascii olarak nasıl yapabiliriz ekstra yöntem olarak.
dxv6v4q.PNG
Teşekkür ederim. Bunun için wchar_t kullanılabilir. Türkçe karakterler desteklenmiş olur böylelikle.

Teşekkürler
 
Moderatör tarafında düzenlendi:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.