Verschlüsselung mit XOR
-
Hallo!
Ich soll eine Blockweise Verschlüsselung mit dem XOR machen.
Mein Problem ist, dass wenn ich einen String mit n-Zeichen eingebe, ihn codiere, immer eine Folge Nullen mit der Länge n rauskommt.
Ich weis nicht wo der verfluchte Fehler liegt!Das ist die Funktion, die aufgerufen wird, sobald ich den Button drücke:
void CBlocksatzcodierungDlg::OnOK() { CString Eingabe; CString Codewort; unsigned int laenge_eingabe; unsigned int laenge_codewort; unsigned int i; unsigned int b; char c_temp1; char c_temp2; int int_temp1; int int_temp2; UpdateData(true); GetDlgItem(IDC_Eingabe)->GetWindowText(Eingabe); GetDlgItem(IDC_Codewort)->GetWindowText(Codewort); laenge_eingabe = Eingabe.GetLength(); laenge_codewort = Codewort.GetLength(); int *Wertearray_eingabe = new int[laenge_eingabe]; b=0; for(i = 0; i < laenge_eingabe; i++) { c_temp1 = Eingabe.GetAt(i); c_temp2 = Codewort.GetAt(b); int_temp1 = atoi(&c_temp1); int_temp2 = atoi(&c_temp2); // Hier kommt die XOR-Verknüpfung Wertearray_eingabe[i] = (int_temp1^int_temp2); if(b == laenge_codewort-1) b=0; else b++; } char *ausgabe = new char[laenge_eingabe+1]; // Mit dem Loop will ich die Int's in Char's umwandeln for(i=0 ; i<laenge_eingabe ; i++) _itoa(Wertearray_eingabe[i],&ausgabe[i],10); ausgabe[laenge_eingabe+1] = '\0'; GetDlgItem(IDC_Ausgabe)->SetWindowText(ausgabe); }
-
Ich würde im letzten teil mal probieren statt mit _itoa
eine CString Variable als temporär zu definierenz.B.
CString tmp;Und dann mit dem Format Operator zu arbeiten
z.B.
for(i=0 ; i<laenge_eingabe ; i++)
{
tmp = tmp + tmp.Format("%d",ausgabe[i]);
}
-
Ooops Sorry,
ich meine natürlich:
for(i=0 ; i<laenge_eingabe ; i++)
{
tmp = tmp + tmp.Format("%c",ausgabe[i]);
}
-
Ich habs schon hinbekommen. Topic kann zu