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

Node.jsのcrypto.getDiffieHellman()メソッド


crypto.createDiffieHellmanGroup()は、事前に決定されたDiffieHellmanGroupキー交換オブジェクトを作成するために使用されます。サポートされているDiffieHellmanGroupsには、modp1、modp2、modp5、modp 14、modp16、modp17などがあります。このメソッドを使用する利点は、パーティがグループモジュラスを生成または交換する必要がないため、処理時間を節約できることです。

>

構文

crypto.getDiffieHelmmanGroup(groupName)

パラメータ

上記のパラメータは以下のように記述されます-

  • groupName –グループ名の入力を受け取ります。入力のタイプは「文字列」です。

getdiffieHellman.jsという名前のファイルを作成し、以下のコードスニペットをコピーします。ファイルを作成したら、次のコマンドを使用して、以下の例に示すようにこのコードを実行します-

node getDiffieHellman.js

getdiffieHellman.js

// crypto.getDiffieHellman() Demo Example

// Importing the crypto module
const crypto = require('crypto');

const server = crypto.getDiffieHellman('modp1');
const client = crypto.getDiffieHellman('modp1');

// Printing DiffieHellman values
console.log(server);
console.log(client);

// Generating public and private keys
server.generateKeys();
client.generateKeys();

// Gettong public key
const serverSecret = server.computeSecret(client.getPublicKey(), null, 'hex');
const clientSecret = client.computeSecret(server.getPublicKey(), null, 'hex');

/* aliceSecret and bobSecret should be the same */
console.log(serverSecret === clientSecret);

出力

C:\home\node>> node getDiffieHellman.js
DiffieHellmanGroup { _handle: { verifyError: [Getter] }, verifyError: 0 }
DiffieHellmanGroup { _handle: { verifyError: [Getter] }, verifyError: 0 }
true
>

もう1つの例を見てみましょう。

// crypto.getDiffieHellman() Demo Example

// Importing the crypto module
const crypto = require('crypto');

const dh1 = crypto.getDiffieHellman('modp17');
const dh2 = crypto.getDiffieHellman('modp14');

// Generating public and private keys
dh1.generateKeys();
dh2.generateKeys();

// Gettong public key
const dh1Key = dh1.computeSecret(dh2.getPublicKey(), null, 'hex');
const dh2Key = dh2.computeSecret(dh1.getPublicKey(), null, 'hex');

/* aliceSecret and bobSecret should be the same */
console.log(dh1Key === dh2Key);

出力

C:\home\node>> node getDiffieHellman.js
internal/crypto/diffiehellman.js:102
const ret = this._handle.computeSecret(toBuf(key, inEnc));
                        ^
Error: Supplied key is too large
   at DiffieHellmanGroup.dhComputeSecret [as computeSecret]
(internal/crypto/diffiehellman.js:102:28)
   at Object.<anonymous> (/home/node/test/getDiffieHellman .js:15:20)
   at Module._compile (internal/modules/cjs/loader.js:778:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
   at Module.load (internal/modules/cjs/loader.js:653:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
   at Function.Module._load (internal/modules/cjs/loader.js:585:3)
   at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
   at startup (internal/bootstrap/node.js:283:19)
   at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)

  1. Node.jsのcrypto.privateDecrypt()メソッド

    crypto.privateDecrypt()は、crypto.publicEncrypt()メソッドで対応する公開鍵を使用して以前に暗号化されたパラメーターで渡された秘密鍵を使用して、指定されたデータコンテンツを復号化するために使用されます。 構文 crypto.privateDecrypt(privateKey、buffer) パラメータ 上記のパラメータは以下のように記述されます- キー –オブジェクト、文字列、バッファ、またはKeyObjectの5種類のデータを含めることができます。 oaepHash –このフィールドには、OAEPパディングとMGF1に使用されるハ

  2. Node.jsのcrypto.getHashes()メソッド

    crypto.getHashes()メソッドは、サポートされているすべてのハッシュアルゴリズムの名前を含む配列を返します。暗号パッケージには、使用できるハッシュアルゴリズムの膨大なリストがあります。ただし、最も使用されている暗号化アルゴリズムは「MD5 –メッセージダイジェストアルゴリズム5」です。 構文 crypto.getHashes() パラメータ すべてのハッシュアルゴリズムのリストを返すためです。入力する必要はありません。 例 getHashes.jsという名前のファイルを作成し、以下のコードスニペットをコピーします。ファイルを作成したら、次のコマンドを使用して、以下の例に示すよ