ホームページ  >  記事  >  ウェブフロントエンド  >  jqueryはaes暗号化と復号化を実装します

jqueryはaes暗号化と復号化を実装します

WBOY
WBOYオリジナル
2023-05-23 22:18:062339ブラウズ

インターネット技術の発展に伴い、ネットワークセキュリティの問題はますます顕著になってきています。多くの Web サイトでは、ユーザーがパスワードなどの機密情報を入力する必要があります。多くの場合、この情報はセキュリティを確保するために暗号化する必要があります。 AES (Advanced Encryption Standard) は、効率的で安全、信頼性の高い一般的な暗号化アルゴリズムです。フロントエンド開発では、jQuery を使用して AES 暗号化と復号化を実装するのが一般的な方法です。

1. AES 暗号化と復号化の概要

AES 暗号化と復号化は対称暗号化アルゴリズムであり、暗号化と復号化に同じキーが使用されることを意味します。平文をブロックに暗号化して暗号文を形成するブロック暗号です。一般的に使用される AES 暗号化アルゴリズムには、AES-128、AES-192、および AES-256 の 3 つがあり、それぞれ 128 ビット、192 ビット、および 256 ビットのキーを使用します。

AES 暗号化アルゴリズムの具体的なプロセスは次のとおりです。

  1. 鍵拡張アルゴリズムを初期化し、鍵に基づいてラウンド鍵を生成し、ラウンド鍵を配列に格納します。 。
  2. 複数ラウンドの暗号化を実行する 暗号化の各ラウンドには、バイト置換、行シフト、列難読化、ラウンド キーの追加という 4 つのステップが含まれます。
  3. 最後のラウンドの暗号化には列の混乱は含まれず、最後の暗号文が暗号化の結果になります。

AES 復号化アルゴリズムは、AES 暗号化アルゴリズムの逆のプロセスであり、暗号文を平文に変換します。具体的なプロセスは次のとおりです。

  1. 鍵拡張を初期化し、ラウンド鍵を生成し、ラウンド鍵を配列に格納します。
  2. 複数ラウンドの復号化を実行する 復号化の各ラウンドには、ラウンド キーの追加、逆列難読化、逆行シフト、逆バイト置換の 4 つのステップが含まれます。
  3. 最後のラウンドの復号化には逆シーケンス難読化は含まれておらず、取得された平文が復号化の結果となります。

2. jQuery は AES 暗号化を実装します

  1. CryptoJS ライブラリの紹介

AES 暗号化操作を実行する前に、CryptoJS を導入する必要があります。図書館。 CryptoJS は、AES、DES、Triple DES、Blowfish、MD5、SHA-1 などの複数の暗号化アルゴリズムを提供する JavaScript 暗号化コンポーネントです。公式 Web サイト http://cryptojs.altervista.org/ からダウンロードできます。

ライブラリの導入方法は以下の通りです。

<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>
  1. 暗号化関数の記述

CryptoJSライブラリ導入後、暗号化関数を記述できます。 。以下は、AES-256 暗号化関数の実装です:

function aesEncrypt(text, key) {
  var encrypted = CryptoJS.AES.encrypt(text, key);
  return encrypted.toString();
}

パラメータ テキストは暗号化される平文であり、パラメータ キーはキーです。まず、CryptoJS.AES.encrypt メソッドを使用して暗号化処理を実行し、暗号化されたオブジェクトを取得します。次に、暗号化されたオブジェクトの toString メソッドを呼び出して、暗号化結果を文字列形式に変換します。

  1. 暗号化のために暗号化関数を呼び出す

暗号化関数を作成した後、jQuery で関数を呼び出して暗号化操作を実行できます。以下に例を示します。

$(document).ready(function() {
   var text = "hello world";
   var key = "this is a secret key";
   var encrypted = aesEncrypt(text, key);
   console.log(encrypted);
});

暗号化する平文とキーをパラメーターとして aesEncrypt 関数に渡し、暗号化結果を取得します。上記の例では、暗号化結果がコンソールに出力されます。

3. jQuery は AES 復号化を実装します

  1. 復号化関数の書き込み

AES 復号化操作を実行する前に、CryptoJS ライブラリも導入する必要があります。以下は、AES-256 復号化関数の実装です。

function aesDecrypt(text, key) {
  var decrypted = CryptoJS.AES.decrypt(text, key);
  return decrypted.toString(CryptoJS.enc.Utf8);
}

パラメータ テキストは復号化する暗号文であり、パラメータ キーはキーです。まず、CryptoJS.AES.decrypt メソッドを使用して復号処理を実行し、復号オブジェクトを取得します。次に、復号化されたオブジェクトの toString メソッドを呼び出して、復号化された結果を文字列形式に変換します。

  1. 復号化のために復号化関数を呼び出す

復号化関数を作成した後、jQuery で関数を呼び出して復号化操作を実行することもできます。以下に例を示します。

$(document).ready(function() {
   var text = "U2FsdGVkX1/E0Dtap725gqwH+7D+W2m/6nV9gGPwsYE=";
   var key = "this is a secret key";
   var decrypted = aesDecrypt(text, key);
   console.log(decrypted);
});

復号化する暗号文とキーをパラメータとして aesDecrypt 関数に渡し、復号結果を取得します。上記の例では、復号結果がコンソールに出力されます。

4. まとめ

jQuery は、CryptoJS ライブラリを導入するだけで、AES アルゴリズムを使用した暗号化と復号処理を簡単に実装できます。 AESアルゴリズムを利用することで暗号化・復号化の安全性を確保し、情報漏洩を防ぐことができます。フロントエンド開発を行う場合、jQuery を使用して AES 暗号化および復号化操作を実装するのが一般的な方法です。

以上がjqueryはaes暗号化と復号化を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。