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.
Caesar-Chiffre
Um das Caesar-Chiffre zu verwenden, folgen Sie diesen Schritten:
- Öffnen Sie das Terminal/SSH und geben Sie
nodeein, um mit der Code-Praxis zu beginnen. - 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. - Die
caesarCipher-Funktion verwendet den Modulo-Operator (%) und den ternären Operator (?), um den richtigen Verschlüsselungs- oder Entschlüsselungsschlüssel zu berechnen. - Sie verwendet den Spread-Operator (
...) undArray.prototype.map(), um über die Buchstaben des gegebenen Strings zu iterieren. - Sie verwendet
String.prototype.charCodeAt()undString.fromCharCode(), um jeden Buchstaben entsprechend umzuwandeln, wobei Sonderzeichen, Leerzeichen usw. ignoriert werden. - Sie verwendet
Array.prototype.join(), um alle Buchstaben zu einem String zu kombinieren. - Wenn Sie einen verschlüsselten String entschlüsseln möchten, übergeben Sie
trueals letztes Argument,decrypt, wenn Sie diecaesarCipher-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.