ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScriptを使用して暗号マシンを構築する方法

JavaScriptを使用して暗号マシンを構築する方法

Joseph Gordon-Levitt
リリース: 2025-02-14 09:34:11
オリジナル
522 人が閲覧しました

このチュートリアルでは、JavaScriptを使用してCaesar暗号マシンを構築する方法を示しています。 シーザー暗号は、メッセージに各文字を特定の数の場所にシフトします。

How to Build a Cipher Machine with JavaScript

メッセージとシフト値を入力するフォームを備えたHTMLページと、暗号化された結果を表示するDIVを作成します。

JavaScriptコードには以下が含まれます

アルファベット配列。

フォーム要素にアクセスするためのDOM操作。
  • 送信ボタンのイベントハンドラー。
  • an
  • caesar cipherを適用し、非アルファベット文字とケースの感度を処理する機能。
  • >
  • 完成したコードの例を次に示します。 秘密のメッセージの作成を試してみましょう!encrypt
  • 最初に、

を作成します

このHTMLは、シンプルなフォームを作成します。 Shift入力はデフォルトですが、調整できます。 次に、同じフォルダーでcaesar.htmlを作成します:

<!DOCTYPE html>
<html lang='en'>
<head>
  <meta charset='utf-8'>
  <title>Caesar Cipher</title>
</head>
<body>
  <h1>Caesar Cipher</h1>
  <form>
    <label>Plaintext:</label>
    <textarea name='plaintext'>Top Secret</textarea><br>
    <label>Shift:</label>
    <input type='number' name='shift' value='5' min='1' max='26'>
    <input type='submit' value='encrypt'>
  </form>
  <h2>Output</h2>
  <div id='output'></div>
  <🎜>
</body>
</html>
ログイン後にコピー

このJavaScriptコードは、アルファベットを定義し、フォーム要素を取得し、イベントリスナーを追加してフォームの提出を処理し、CAESAR暗号を実行する

関数を含みます。

関数は大文字を処理します。小文字は、main.jsおよび

メソッドによって暗黙的に処理されます。
const alphabet = [
  'A','B','C','D','E','F',
  'G','H','I','J','K','L',
  'M','N','O','P','Q','R',
  'S','T','U','V','W','X',
  'Y','Z'
];

const form = document.forms[0];
const output = document.getElementById('output');

form.addEventListener ('submit',event => {
  event.preventDefault();
  output.innerHTML = [...form.plaintext.value].map(char => encrypt(char)).join('');
});

function encrypt(char) {
  const shift = Number(form.shift.value);
  if (alphabet.includes(char.toUpperCase())) {
    const position = alphabet.indexOf(char.toUpperCase());
    const newPosition = (position + shift)%26;
    return alphabet[newPosition];
  } else {
    return char;
  }
}
ログイン後にコピー

encryptencrypt includesこれにより、シーザー暗号マシンが完成します。 これはシンプルな暗号であり、安全な通信には適していないことを忘れないでください。 indexOf

よくある質問(FAQ)

(簡潔にするために要約)How to Build a Cipher Machine with JavaScript

  • CAESAR CIPHER:ASSTITATION CIPHERシフト文字固定数の場所。
  • javascriptの実装:文字列を介して反復する関数を作成し、文字位置を移動し、非アルファベット文字とケースを処理します。
  • アルファベット以外の文字:
  • シフト前の文字が文字であるかどうかを確認します。それ以外の場合は、変更せずに保管してください。
  • ケースの感度:
  • 処理前に入力を大文字または小文字に変換するか、ケースを個別に処理します。 復号化:
  • 既知のシフト値を使用して、反対方向に文字をシフトします。 不明の場合は、すべての可能なシフトを試してください
  • 最適化:シフトされた値を事前に計算するか、より高速な文字列の操作に
  • を使用してください。
  • セキュリティ:安全ではありません。安全な暗号化にはAESのような最新のアルゴリズムを使用します StringBuilder
  • 他の暗号への拡張:
  • たとえば、シフトするロジックを別の関数に抽象化し、他の暗号の実装に置き換えます。
  • テスト:
  • 既知のシフト値を持つ既知のプレーンテキストを暗号化し、出力を確認します。自動テストにはテストフレームワークを使用します 特殊文字:
  • すべての目的の文字を含むカスタムアルファベットを作成します。

以上がJavaScriptを使用して暗号マシンを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート