Die einfachste, gleichzeitig eine sehr sichere, Verschlüsselung ist die XOR Verschlüsselung, dabei werden die Bits mit einem exklusiven oder vertauscht. Es ist eine symmetrische Verschlüsselung, das bedeutet, dass es ein Passwort gibt und beide Kommunikationspartner müssen dieses wissen.
XOR ist ein Boolescher Operator, der aussagt, wenn die vergleichenden Werte unterschiedlich sind, ist das Ergebnis wahr.
XOR
A
B
Ergebnis
wahr (1)
wahr (1)
falsch (0)
wahr (1)
falsch (0)
wahr (1)
falsch (0)
wahr (1)
wahr (1)
falsch (0)
falsch (0)
falsch (0)
Binärverschlüsselung Rechner
Wenn du jetzt ein Text hast z.B. „Hello World“, wird dieser in ASCII gespeichert. Wenn man es genau nimmt wird der Text in Binär gespeichert (Strom / kein Strom). Jetzt kannst du mit einem Passwort und XOR, die Binärzahlen codieren.
Beispiel
den Text in Binär
Text: Hallo World
das Passwort in Binär
Ich nehme einfach halber die gleiche Länge.
Passwort: qwertzuiopü
XOR anwenden
So würde der Binärcode aussehen, wenn du alles codierst.
var input_text=document.getElementById("text_source");
var input_bin=document.getElementById("bin_source");
var input_pw=document.getElementById("pw_source");
var input_repw=document.getElementById("repw_source");
var output_bintext=document.getElementById("binary_text");
var output_crypt_text=document.getElementById("crypt_text");
var output_recrypt_text=document.getElementById("recrypt_text");
functiontextToBin(text) {
var length = text.length,
output = [];
for (var i = 0;i < length; i++) {
var bin = text[i].charCodeAt().toString(2);
output.push(Array(8-bin.length+1).join("0") + bin);
}
return output.join("");
}
functionbinxor(bin1, bin2) {
var bin = "";
for (var i = 0; i < bin1.length; i++) {
bin += bin1[i] ^ bin2[i];
}
return bin;
}
functionconvertToChar(bin) {
var charText = "";
for (var i = 0; i <= bin.length; i = i+8) {
charText += String.fromCharCode(parseInt(bin.slice(i, i+8), 2));
}
return charText;
}
functionxorthetext() {
var bin_text = textToBin(input_text.value);
output_bintext.value = bin_text;
output_crypt_text.value = binxor(bin_text,textToBin(input_pw.value));
}
functionrethetext() {
var recrypt = binxor(input_bin.value, textToBin(input_repw.value));
output_recrypt_text.value = convertToChar(recrypt);
}