Binärverschlüsselung (+Rechner)

Datum
08.05.2021

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

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Kommentare anschauen
Kommentare (0)