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:
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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) + ")");
}
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) + ")");
}
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;
}