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.
Inhaltsverzeichnis
Was ist XOR bzw. exklusives ODER
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.
Text in Binär Rechner / verschlüsseln
Text Binär
mit Passwort verschlüsselt
entschlüsseln
XOR verschlüsseln – Code
HTML
<label for="text_source">Text</label><textarea rows="4" cols="50" class="fominput_bin" id="text_source"></textarea>
<label for="pw_source">Passwort</label><input id="pw_source" class="fominput_bin" type="text"/>
<button id="crypt_it" class="simple_button" onclick="xorthetext()">verschlüsseln</button>
<h3>Text Binär</h3>
<textarea rows="4" cols="50" class="fominput_bin" id="binary_text"></textarea>
<h3>mit Passwort verschlüsselt</h3>
<textarea rows="4" cols="50" class="fominput_bin" id="crypt_text"></textarea>
<label for="bin_source">verschlüsselter Text</label><textarea rows="4" cols="50" class="fominput_bin" id="bin_source"></textarea>
<label for="repw_source">Passwort</label><input id="repw_source" class="fominput_bin" type="text"/>
<button id="crypt_it" class="simple_button" onclick="rethetext()">entschlüsseln</button>
<textarea rows="4" cols="50" class="fominput_bin" id="recrypt_text"></textarea>
Java Script
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");
function textToBin(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("");
}
function binxor(bin1, bin2) {
var bin = "";
for (var i = 0; i < bin1.length; i++) {
bin += bin1[i] ^ bin2[i];
}
return bin;
}
function convertToChar(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;
}
function xorthetext() {
var bin_text = textToBin(input_text.value);
output_bintext.value = bin_text;
output_crypt_text.value = binxor(bin_text,textToBin(input_pw.value));
}
function rethetext() {
var recrypt = binxor(input_bin.value, textToBin(input_repw.value));
output_recrypt_text.value = convertToChar(recrypt);
}
Schreibe einen Kommentar