Das Caesar-Chiffre in JavaScript implementieren

JavaScriptJavaScriptBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir das Caesar-Chiffre, einen einfachen Verschlüsselungsalgorithmus, untersuchen, der jedes Zeichen eines gegebenen Strings um eine bestimmte Anzahl von Positionen im Alphabet nach unten verschiebt. Wir werden das Caesar-Chiffre in JavaScript implementieren, indem wir eine Kombination aus Zeichenkettenmanipulation und Array-Methoden verwenden, und lernen, wie man Nachrichten mit dieser Technik verschlüsselt und entschlüsselt. Dieses Lab bietet eine ausgezeichnete Gelegenheit, Ihre JavaScript-Fähigkeiten zu üben und ein besseres Verständnis von Verschlüsselungsalgorithmen zu erlangen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/cond_stmts("Conditional Statements") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28183{{"Das Caesar-Chiffre in JavaScript implementieren"}} javascript/data_types -.-> lab-28183{{"Das Caesar-Chiffre in JavaScript implementieren"}} javascript/arith_ops -.-> lab-28183{{"Das Caesar-Chiffre in JavaScript implementieren"}} javascript/comp_ops -.-> lab-28183{{"Das Caesar-Chiffre in JavaScript implementieren"}} javascript/cond_stmts -.-> lab-28183{{"Das Caesar-Chiffre in JavaScript implementieren"}} javascript/higher_funcs -.-> lab-28183{{"Das Caesar-Chiffre in JavaScript implementieren"}} javascript/spread_rest -.-> lab-28183{{"Das Caesar-Chiffre in JavaScript implementieren"}} end

Caesar-Chiffre

Um das Caesar-Chiffre zu verwenden, folgen Sie diesen Schritten:

  1. Öffnen Sie das Terminal/SSH und geben Sie node ein, um mit der Code-Praxis zu beginnen.
  2. Rufen Sie die caesarCipher-Funktion mit dem zu verschlüsselnden oder zu entschlüsselnden String, dem Verschiebewert und einem Boolean, der angibt, ob entschlüsselt werden soll oder nicht.
  3. Die caesarCipher-Funktion verwendet den Modulo-Operator (%) und den ternären Operator (?), um den richtigen Verschlüsselungs- oder Entschlüsselungsschlüssel zu berechnen.
  4. Sie verwendet den Spread-Operator (...) und Array.prototype.map(), um über die Buchstaben des gegebenen Strings zu iterieren.
  5. Sie verwendet String.prototype.charCodeAt() und String.fromCharCode(), um jeden Buchstaben entsprechend umzuwandeln, wobei Sonderzeichen, Leerzeichen usw. ignoriert werden.
  6. Sie verwendet Array.prototype.join(), um alle Buchstaben zu einem String zu kombinieren.
  7. Wenn Sie einen verschlüsselten String entschlüsseln möchten, übergeben Sie true als letztes Argument, decrypt, wenn Sie die caesarCipher-Funktion aufrufen.

Hier ist der Code für die caesarCipher-Funktion:

const caesarCipher = (str, shift, decrypt = false) => {
  const s = decrypt ? (26 - shift) % 26 : shift;
  const n = s > 0 ? s : 26 + (s % 26);
  return [...str]
    .map((l, i) => {
      const c = str.charCodeAt(i);
      if (c >= 65 && c <= 90)
        return String.fromCharCode(((c - 65 + n) % 26) + 65);
      if (c >= 97 && c <= 122)
        return String.fromCharCode(((c - 97 + n) % 26) + 97);
      return l;
    })
    .join("");
};

Hier sind einige Beispiele für die Verwendung der caesarCipher-Funktion:

caesarCipher("Hello World!", -3); // 'Ebiil Tloia!'
caesarCipher("Ebiil Tloia!", 23, true); // 'Hello World!'

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Caesar-Chiffre-Lab abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.