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

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


crypto.createCipheriv()は、「crypto」モジュールのプログラミングインターフェイスです。関数に渡された指定されたアルゴリズム、キー、iv、およびオプションに従って、Decipherオブジェクトを作成して返します。

構文

 crypto.createDecipheriv(algorithm、key、iv、[options])

パラメータ

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

  • アルゴリズム –暗号の作成に使用されるアルゴリズムの入力を受け取ります。可能な値には、aes192、aes256などがあります。

  • キー –アルゴリズムとivで使用される生のキーの入力を受け取ります。可能な値のタイプは、string、buffer、TypedArray、またはDataViewです。オプションで、シークレットタイプのタイプオブジェクトにすることができます。

  • iv –初期化ベクトルとも呼ばれます。このパラメーターは、暗号を不確実で一意にするivの入力を受け取ります。秘密である必要はありません。可能な値のタイプは、string、buffer、TypedArray、DataViewです。暗号で必要とされない場合、これはnullになる可能性があります。

  • オプション –これは、ストリームの動作を制御するためのオプションのパラメーターです。暗号がCCMまたはOCBモードで使用される場合(「aes-256-ccm」のように)、これはオプションではありません

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

 node createDecipheriv.js 

createDecipheriv.js

//ECDHを作成するためのノードデモプログラム//cryptomoduleconstのインポートcrypto=require('crypto');//algorithmconstアルゴリズムの初期化='aes-192-cbc';//passwordconstの定義と初期化password ='123456789' //keyconstキーの初期化=crypto.scryptSync(password、'TutorialsPoint'、24); //ivvectorconstの初期化iv=Buffer.alloc(16、0);//上記で復号化を作成定義されたパラメータconstdecipher=crypto.createDecipheriv(algorithm、key、iv); let destroyd =''; // datadecipher.on('読み取り可能'、()=>{letチャンク;while(null!==(チャンク=decipher.read())){復号化+ =チャンク.toString('utf8');}}); //終了/終了イベントの処理decipher.on('end'、()=> {console.log(復号化);});//復号化される暗号化データconstencrypted ='uqeQEkXy5dpJjQv + JDvMHw =='; //復号化されたtextdecipher.write(encrypted、'base64'); decode.end();consoleを印刷します。 log( "Completed ...!"); 

出力

 C:\ home \ node>> node createDecipheriv.jsCompleted ...!TutorialsPoint 

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

//ECDHを作成するためのノードデモプログラム//cryptomoduleconstのインポートcrypto=require('crypto');//algorithmconstアルゴリズムの初期化='aes-256-cbc';//passwordconstの定義と初期化password ='123456789'//keyconstの初期化key=crypto.randomBytes(32);//ivの初期化vectorconstiv=crypto.randomBytes(16); //データを暗号化する暗号化関数encrypt(text){//作成上記で定義されたパラメータを持つ暗号letcipher=crypto.createCipheriv('aes-256-cbc'、Buffer.from(key)、iv);//暗号化されたテキストを更新しています...letencrypted =cipher.update(text); // concatenationencrypted =Buffer.concat([encrypted、cipher.final()]);//暗号化されたデータとともにivベクトルを返すreturn{iv:iv.toString('hex')、encryptedData:encrypted.toString( ' hex')};} //データを復号化するための復号化関数decrypt(text){let iv =Buffer.from(text.iv、'hex'); let cryptotext =Buffer.from(text.encryptedData、'hex'); // algo、key、ivletから復号化を作成しますdecipher =crypto.createDecipheriv('aes-256-cbc'、Buffer.from(key)、iv);//復号化されたテキストレットを更新しますdecrypted=decipher.update(encryptedText);復号化=Buffer.concat([decrypted、decipher.final()]);//復号化後に応答データを返すreturndecrypted.toString();}//以下のデータを暗号化してoutputvarを出力出力=encrypt( "Welcome to TutorialsPoint!" ); console.log( "暗号化されたデータ-"、出力); //復号化されたデータの印刷console.log( "復号化されたデータ-"、decrypt(output)); 

出力

 C:\ home \ node>> node createDecipheriv.jsEncrypted data-{iv: '3fb2c84290e04d9bfb099bc65a7ac941'、encryptedData: '4490777e90c5a78037cb92a99d561ae250562e2636af459b911cfa01c0191e3f'} Decrypt 
  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という名前のファイルを作成し、以下のコードスニペットをコピーします。ファイルを作成したら、次のコマンドを使用して、以下の例に示すよ