ホームページ >ウェブフロントエンド >フロントエンドQ&A >nodejs は 3des 暗号化と復号化を実装します

nodejs は 3des 暗号化と復号化を実装します

王林
王林オリジナル
2023-05-16 21:26:371087ブラウズ

Node.js は、Chrome V8 エンジンに基づく JavaScript ランタイム環境であり、高パフォーマンスの Web アプリケーションの構築に最適です。 3DES (Triple Data Encryption Standard) は、データの送信と保存に広く使用されている対称暗号化アルゴリズムです。この記事では、Node.jsを使用して3DESの暗号化と復号を実装する方法を紹介します。

  1. 必要な依存関係をインストールする

まず、crypto という名前の Node.js モジュールをローカルにインストールする必要があります。 crypto モジュールは Node.js のコア モジュールの 1 つであり、暗号化、復号、ハッシュなどの多くのセキュリティ関連機能を提供します。

次のコマンドを使用して、暗号化モジュールをインストールできます:

npm install crypto
  1. Generate key

暗号化と復号化を実行する前に、最初にキーを押します。 3DES アルゴリズムは、24 バイト (192 ビット) のキー長を使用します。ランダムキーは、暗号化モジュールのrandomBytes()メソッドを使用して生成できます。

以下は、ランダム キーを生成するサンプル コードです。

const crypto = require('crypto');

const key = crypto.randomBytes(24);
console.log(key.toString('hex'));

上記のコードを実行すると、 3DES のキーである 48 個の 16 進数で構成されるランダムな文字列を出力できます。

  1. データの暗号化

生成されたキーと暗号化モジュールを使用してデータを暗号化します。 3DES 暗号化アルゴリズムは、crypto モジュールで提供されます。使用方法は次のとおりです:

const crypto = require('crypto');

const key = crypto.randomBytes(24);
const text = 'Hello, world!';

const cipher = crypto.createCipheriv('des-ede3', key, '');
let encrypted = cipher.update(text, 'utf8', 'hex');
encrypted += cipher.final('hex');
console.log(encrypted);

上記のコードでは、「des-ede3」は 3DES 暗号化アルゴリズムを使用することを意味し、key は以前に生成されたキーです。 ' は、デフォルトの暗号化されたベクトルを使用することを意味します。

最後に、createCipheriv() メソッドを使用して暗号オブジェクト cipher を作成し、update() メソッドを使用して暗号化するテキストをそれに渡します。「utf8」はテキストのエンコード方式を表し、 「hex」は出力結果のエンコーディングを表し、最後にfinal()メソッドを使用して暗号化結果を出力します。

  1. データの復号化

生成されたキーと暗号化モジュールを使用して、データの暗号化と同様の方法でデータを復号化します。暗号化モジュールは、復号化オブジェクトを作成する createDecipheriv() メソッドを提供します。使用方法は次のとおりです:

const crypto = require('crypto');

const key = crypto.randomBytes(24);
const text = 'Hello, world!';

const cipher = crypto.createCipheriv('des-ede3', key, '');
let encrypted = cipher.update(text, 'utf8', 'hex');
encrypted += cipher.final('hex');
console.log(encrypted);

const decipher = crypto.createDecipheriv('des-ede3', key, '');
let decrypted = decipher.update(encrypted, 'hex', 'utf8');
decrypted += decipher.final('utf8');
console.log(decrypted);

上記のコードでは、createDecipheriv() メソッドを使用して復号化オブジェクト復号化を作成し、 update() メソッドに復号するテキストを渡します。'hex' は入力結果のエンコード方式を表し、'utf8' は出力結果のエンコード方式を表し、最後に Final() メソッドを使用して復号結果を出力します。

このように、Node.js を使用して 3DES 暗号化と復号化を実装します。より高度なセキュリティが必要な場合は、AES (Advanced Encryption Standard) など、他のより強力な暗号化アルゴリズムを使用できます。

概要

この記事では、Node.js を使用して 3DES 暗号化と復号化を実装する方法を紹介し、キーの生成、データの暗号化、データの復号化などの基本操作をカバーします。 Node.js の暗号モジュールは、さまざまな暗号化と復号化操作を簡単に実行できるセキュリティ関連の機能を豊富に提供します。

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

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