Probleme beim verschlüsseln von strings
-
Hallo zusammen,
ich habe folgendes Probelm, ich verstehe diesen Teil eines Programms nicht, das eine beliebige Zeichenkette mit einem beliebigen Schlüssel (ebenfalls eine Zeichenkette) verschlüsselt:
for (i=0 , j = 0; text[i] != '\0' ; i++ , j++ )
{
if (schluessel[j] == '\0') { j = 0; }
textneu[i] = ((schluessel[j] & 0x0F) ^ text[i]);was ich verstehe:
die for-schleife springt bei jedem durchlauf von einem "stringplatz" zum nächsten,
die if-anweisung lässt den schlüssel von vorne beginnen,
was & und ^ machen ist auch klar, also "und" und "xor"was ich nicht verstehe:
was macht die hexadezimalzahl da?würde mich sehr über eure hilfe freuen.
Grüße
-
Die Hex_Zahl wird mit dem bitweisen und auf schluessel[j] angewandt.
Was genau verstehst du dabei nicht?gruß
-
Vielleicht beantwortet das deine Frage ein char ist auch nur eine Zahl.
-
ach so, das & verknüpft den schlüssel bitweise mit der hexadezimalzahl, weil ja der schlüssel auch nur ne binärzahl ist und das ^ dann das ergebnis mit dem text[i].
ok, das wäre klar, jetzt versteh ich nur diese komische verschlüsselung nicht, hätte es da nicht gereicht den text mit dem schlüssel selbst bitweise zu codieren? der schlüssel is ja auch nur ne zahl, warum noch die hex-zahl?
-
Klar hätte das gereicht. Dummerweise kommen dann so dämliche Steuerzeichen raus, wenn sowohl Klartext als auch Schlüssel aus Buchstaben bestehen.
-
Klar hätte das gereicht. Dummerweise kommen dann so dämliche Steuerzeichen raus, wenn sowohl Klartext als auch Schlüssel aus Buchstaben bestehen.
Dann kodier die Zeichen eben so wie hexdump oder so.