Bedienungsanleitung für das Verschlüsselungsprogramm

Dieses Programm ermöglicht die Verschlüsselung und Entschlüsselung von Texten mit verschiedenen Algorithmen. Hier ist eine Schritt-für-Schritt-Anleitung zur Verwendung des Programms:

Caesar-Verschlüsselung

Verschlüsselung

  1. Geben Sie den Klartext in das erste Textfeld (Memo1) ein.
  2. Geben Sie den Verschlüsselungscode (eine Zahl) in das entsprechende Eingabefeld (Edit1) ein.
  3. Klicken Sie auf den Button „Verschlüsseln“ (Button1), um den Text zu verschlüsseln.
  4. Der verschlüsselte Text erscheint im zweiten Textfeld (Memo2).
void __fastcall TForm2::Button1Click(TObject *Sender) {
    String sText = Memo1->Lines->Text;
    String sVerText;
    int iVerCode = StrToInt(Edit1->Text);
    for (char cBuchstabe : sText) {
        if (isupper(cBuchstabe)) {
            cBuchstabe = (cBuchstabe - 'A' + iVerCode) % 26 + 'A';
        } else if (islower(cBuchstabe)) {
            cBuchstabe = (cBuchstabe - 'a' + iVerCode) % 26 + 'a';
        }
        sVerText += cBuchstabe;
    }
    Memo2->Lines->Add(sVerText);
}

Entschlüsselung

  1. Geben Sie den verschlüsselten Text in das erste Textfeld (Memo1) ein.
  2. Geben Sie den Verschlüsselungscode (die gleiche Zahl wie bei der Verschlüsselung) in das entsprechende Eingabefeld (Edit1) ein.
  3. Klicken Sie auf den Button „Entschlüsseln“ (Button2), um den Text zu entschlüsseln.
  4. Der entschlüsselte Text erscheint im zweiten Textfeld (Memo2).
void __fastcall TForm2::Button2Click(TObject *Sender) {
    String sText = Memo1->Lines->Text;
    String sVerText;
    int iVerCode = StrToInt(Edit1->Text);
    for (char cBuchstabe : sText) {
        if (isupper(cBuchstabe)) {
            cBuchstabe = (cBuchstabe - 'Z' - iVerCode) % 26 + 'Z';
        } else if (islower(cBuchstabe)) {
            cBuchstabe = (cBuchstabe - 'z' - iVerCode) % 26 + 'z';
        }
        sVerText += cBuchstabe;
    }
    Memo2->Lines->Add(sVerText);
}

XOR-Verschlüsselung

Verschlüsselung und Entschlüsselung

  1. Geben Sie den Text in das erste Textfeld (xor_memo1) ein.
  2. Geben Sie den Schlüssel in das Eingabefeld (xor_key) ein.
  3. Klicken Sie auf den Button „Verschlüsseln/Entschlüsseln“ (xor_btn), um den Text zu verarbeiten.
  4. Der verarbeitete Text erscheint im zweiten Textfeld (xor_memo2).
void __fastcall TForm2::xor_btnClick(TObject *Sender) {
    String sText = xor_memo1->Lines->Text;
    String sVerCode = xor_key->Text;
    int sVerCodeLength = sVerCode.Length();
    int sVerCodeIndex = 1;
    String sVerText;
    for (char cBuchstabe : sText) {
        sVerText += static_cast(cBuchstabe ^ sVerCode[sVerCodeIndex]);
        sVerCodeIndex++;
        if (sVerCodeIndex > sVerCodeLength) {
            sVerCodeIndex = 1;
        }
    }
    xor_memo2->Lines->Add(sVerText);
}

Vigenere-Verschlüsselung

Verschlüsselung

  1. Geben Sie den Klartext in das erste Textfeld (pw_memo1) ein.
  2. Geben Sie das Passwort in das Eingabefeld (pw_password) ein.
  3. Klicken Sie auf den Button „Verschlüsseln“ (pw_encrypt), um den Text zu verschlüsseln.
  4. Der verschlüsselte Text erscheint im zweiten Textfeld (pw_memo2).
void __fastcall TForm2::pw_encryptClick(TObject *Sender) {
    UnicodeString key = pw_password->Text.UpperCase();
    UnicodeString plaintext = pw_memo1->Text.UpperCase();
    pw_memo2->Text = VigenereEncrypt(plaintext, key);
}

Entschlüsselung

  1. Geben Sie den verschlüsselten Text in das erste Textfeld (pw_memo1) ein.
  2. Geben Sie das Passwort in das Eingabefeld (pw_password) ein.
  3. Klicken Sie auf den Button „Entschlüsseln“ (pw_decrypt), um den Text zu entschlüsseln.
  4. Der entschlüsselte Text erscheint im zweiten Textfeld (pw_memo2).
void __fastcall TForm2::pw_decryptClick(TObject *Sender) {
    UnicodeString key = pw_password->Text.UpperCase();
    UnicodeString ciphertext = pw_memo1->Text.UpperCase();
    pw_memo2->Text = VigenereDecrypt(ciphertext, key);
}

Primzahlenverschlüsselung

Verschlüsselung

  1. Geben Sie den Klartext in das erste Textfeld (prim_memo1) ein.
  2. Geben Sie die Werte für a und b in die entsprechenden Eingabefelder (EditA und EditB) ein.
  3. Klicken Sie auf den Button „Verschlüsseln“ (prim_encrypt), um den Text zu verschlüsseln.
  4. Der verschlüsselte Text erscheint im zweiten Textfeld (prim_memo2).
void __fastcall TForm2::prim_encryptClick(TObject *Sender) {
    int a = StrToInt(EditA->Text);
    int b = StrToInt(EditB->Text);
    std::vector primes = GeneratePrimes(a, b);
    UnicodeString plaintext = prim_memo1->Text;
    prim_memo2->Text = PrimeEncrypt(plaintext, primes);
}

Entschlüsselung

  1. Geben Sie den verschlüsselten Text in das erste Textfeld (prim_memo1) ein.
  2. Geben Sie die Werte für a und b in die entsprechenden Eingabefelder (EditA und EditB) ein.
  3. Klicken Sie auf den Button „Entschlüsseln“ (prim_decrypt), um den Text zu entschlüsseln.
  4. Der entschlüsselte Text erscheint im zweiten Textfeld (prim_memo2).
void __fastcall TForm2::prim_decryptClick(TObject *Sender) {
    int a = StrToInt(EditA->Text);
    int b = StrToInt(EditB->Text);
    std::vector primes = GeneratePrimes(a, b);
    UnicodeString ciphertext = prim_memo1->Text;
    prim_memo2->Text = PrimeDecrypt(ciphertext, primes);
}

RSA-Verschlüsselung

Schlüsselerzeugung

  1. Klicken Sie auf den Button „Schlüssel generieren“ (rsa_generateKey), um einen neuen RSA-Schlüssel zu erzeugen.
  2. Die generierten Schlüssel werden angezeigt.
void __fastcall TForm2::rsa_generateKeyClick(TObject *Sender) {
    int n, e, d;
    GenerateRSAKeys(n, e, d);
    ShowMessage("New Keys Generated:\\n\\nEncryption Key (n, e): (" + IntToStr(n) + ", " + IntToStr(e) + ")\\nDecryption Key (n, d): (" + IntToStr(n) + ", " + IntToStr(d) + ")");
}

Verschlüsselung

  1. Geben Sie den Klartext in das erste Textfeld (rsa_memo1) ein.
  2. Klicken Sie auf den Button „Verschlüsseln“ (rsa_encrypt), um den Text zu verschlüsseln.
  3. Der verschlüsselte Text erscheint im zweiten Textfeld (rsa_memo2).
  4. Die verwendeten Schlüssel werden angezeigt.
void __fastcall TForm2::rsa_encryptClick(TObject *Sender) {
    UnicodeString plaintext = rsa_memo1->Text;
    int n, e, d;
    GenerateRSAKeys(n, e, d);
    UnicodeString ciphertext = RSAEncrypt(plaintext, e, n);
    rsa_memo2->Text = ciphertext;
    ShowMessage("Encryption Key (n, e): (" + IntToStr(n) + ", " + IntToStr(e) + ")");
    ShowMessage("Decryption Key (n, d): (" + IntToStr(n) + ", " + IntToStr(d) + ")");
}

Entschlüsselung

  1. Geben Sie den verschlüsselten Text in das erste Textfeld (rsa_memo1) ein.
  2. Klicken Sie auf den Button „Entschlüsseln“ (rsa_decrypt), um den Text zu entschlüsseln.
  3. Der entschlüsselte Text erscheint im zweiten Textfeld (rsa_memo2).
void __fastcall TForm2::rsa_decryptClick(TObject *Sender) {
    UnicodeString ciphertext = rsa_memo1->Text.Trim();
    if (ciphertext.IsEmpty()) {
        ShowMessage("Please enter ciphertext to decrypt.");
        return;
    }
    int n = StrToInt(InputBox("RSA Decryption", "Enter n:", ""));
    int d = StrToInt(InputBox("RSA Decryption", "Enter d:", ""));
    UnicodeString plaintext = RSADecrypt(ciphertext, d, n);
    rsa_memo2->Text = plaintext;
}