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

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


crypto.privateDecrypt()は、crypto.publicEncrypt()メソッドで対応する公開鍵を使用して以前に暗号化されたパラメーターで渡された秘密鍵を使用して、指定されたデータコンテンツを復号化するために使用されます。

構文

 crypto.privateDecrypt(privateKey、buffer)

パラメータ

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

  • キー –オブジェクト、文字列、バッファ、またはKeyObjectの5種類のデータを含めることができます。

    • oaepHash –このフィールドには、OAEPパディングとMGF1に使用されるハッシュ関数が含まれています。デフォルト値は「sha1」です。

    • oaepLabel –このフィールドには、OAEPパディングの値が含まれます。指定されていない場合、ラベルは使用されません。

    • パディング –これはcrypto.constantsで定義されたオプションの値です。

  • バッファ –このフィールドには、復号化するデータコンテンツが含まれます。可能なバッファタイプは、string、TypedArray、Buffer、ArrayBuffer、DataViewです。

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

 node privateDecrypt.js 

privateDecrypt.js

 // crypto.privateDecrypt()メソッドのフローを示すNode.jsプログラム//cryptoとfsモジュールのインポートconstcrypto =require('crypto'); const fs =require( "fs");//読み取り公開鍵.//これらの鍵は、generateKeyPair()publicKey =fs.readFileSync('public_key')。toString();//暗号化する以下のテキストを渡すことで生成できますvarbuf =Buffer.from('Hello TutorialsPoint'、 ' utf8');//上記のtextsecretDataの暗号化=crypto.publicEncrypt(publicKey、buf); //暗号化されたtextconsole.log(secretData);//秘密鍵の読み取りprivateKey=fs.readFileSync(' private_key')。toString( );//暗号化されたtextorigDataの復号化=crypto.privateDecrypt(privateKey、secretData); console.log(); //元のテキストをbufferconsole.log(origData);として出力します

出力

 C:\ home \ node>> node privateDecrypt.js <バッファ48656c 6c 6f 20 54 75 74 6f 72 69 61 6c 73 50 6f 69 6e 74> 

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

 // crypto.privateDecrypt()メソッドのフローを示すNode.jsプログラム//暗号とfsモジュールのインポートconst crypto =require('crypto'); const fs =require( "fs");//キーの生成generateKeyPairSync()メソッドを使用するファイルgenerateKeyFiles(){const keyPair =crypto.generateKeyPairSync('rsa'、{modulusLength:530、publicKeyEncoding:{type:'spki'、format:'pem'}、privateKeyEncoding:{type:'pkcs8' 、形式:'pem'、暗号:'aes-256-cbc'、パスフレーズ:''}}); //次のファイルにキーを書き込みますfs.writeFileSync( "public_key"、keyPair.publicKey); fs.writeFileSync( "private_key"、keyPair.privateKey);} //生成キーの呼び出しmethodgenerateKeyFiles(); //一時停止された文字列関数の暗号化encryptString(plaintext、publicKeyFile){const publicKey =fs.readFileSync(publicKeyFile、 "utf8"); // publicEncrypt()メソッドと公開鍵を使用してデータを暗号化するconst Encryption =crypto.publicEncrypt(publicKey、Buffer.from(plaintext)); return encode.toString( "base64");} //プライベートキーを使用して渡された文字列を復号化するdecryptString(ciphertext、privateKeyFile){const privateKey =fs.readFileSync(privateKeyFile、 "utf8"); // privateDecrypt()メソッドを使用してデータを復号化します//および対応する秘密鍵const destroyd =crypto.privateDecrypt({key:privateKey、passphrase:''、}、Buffer.from(ciphertext、 "base64")); return destroyd.toString( "utf8");}//次のデータは暗号化および復号化されますconstplainText ="TutorialsPoint!";//以下のメソッドを呼び出してstringconstencrypted =encodeString(plainText、 "./public_key");/を暗号化します/プレーンtextconsole.log( "Plaintext:"、plainText); console.log(); //暗号化されたtextconsole.log( "暗号化されたテキスト:"、encrypted); console.log();//を印刷します復号化されたtextconsole.log( "復号化されたテキスト:"、decryptString(encrypted、 "private_key")); 

出力

 C:\ home \ node>> node privateDecrypt.jsPlaintext:TutorialsPoint!Encrypted Text:AbSrqG4qFBG1q9KUBt8ddJxk9uNanOHXqY19N0mNHx0fm4M119dZVhcNrAvM8UaIRJvh7AsdWyjv1scPA25 
  1. Node.jsのcrypto.privateEncrypt()メソッド

    crypto.privateEncrypt()は、関数で渡された特定の秘密鍵パラメーターを使用して、特定のデータコンテンツを暗号化するために使用されます。 構文 crypto.privateEncrypt(privateKey、buffer) パラメータ 上記のパラメータは以下のように記述されます- privateKey –次のデータ型を含めることができます– Object、String、BufferまたはKeyObject。 キー –この鍵は、「PEM」でエンコードされた秘密鍵です。キーのタイプは、string、buffer、またはKeyObjectです。 パスフレ

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

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