Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptでシーザー暗号を使用して文字列を暗号化する


シーザー暗号アルゴリズム

シーザー暗号アルゴリズムは、最も単純で最も広く知られている暗号化技術の1つです。これは、平文の各文字がアルファベットの下の固定数の文字に置き換えられる換字式暗号の一種です。

左シフトが3の場合、DはAに置き換えられ、EはBになります。暗号化する文字列を最初の引数として、シフト量を2番目の引数として受け取るJavaScript関数を作成する必要があります。

シフト量は正または負の整数にすることができます(正のシフトは右へのシフトを意味し、負のシフトは左へのシフトを意味します)。

以下はコードです-

const str = 'thisIsAString';
const getMap = (legend, shift) => {
   return legend.reduce((charsMap, currentChar, charIndex) => {
      const copy = { ...charsMap };
      let ind = (charIndex + shift) % legend.length;
      if (ind < 0) {
         ind += legend.length;
      };
      copy[currentChar] = legend[ind];
      return copy;
   }, {});
};
const encrypt = (str, shift = 0) => {
   const legend = 'abcdefghijklmnopqrstuvwxyz'.split('');
   const map = getMap(legend, shift);
   return str
   .toLowerCase()
   .split('')
   .map(char => map[char] || char)
   .join('');
};
console.log(encrypt(str, 6));
>

出力

以下はコンソールでの出力です-

znoyoygyzxotm

  1. JavaScriptの配列shift()

    JavaScript配列shift()関数は、配列から最初の要素を削除します- 以下は、配列shift()関数のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</

  2. JavaScriptのインポートで「{}」を使用しますか?

    以下は、javaScriptインポートで{}を使用するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>