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

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


crypto.publicDecrypt()は、公開鍵を使用してバッファー内の指定されたデータを復号化するために使用されます。このバッファは、対応する秘密鍵、つまりcrypto.privateEncrypt()メソッドを使用して暗号化されました。

構文

 crypto.publicDecrypt(key、buffer)

パラメータ

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

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

    • パスフレーズ -これは秘密鍵のオプションのパスフレーズです。

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

    • エンコーディング –これは、バッファ、キー、oaepLabel、またはパスフレーズの値が文字列である場合に使用する必要があるエンコーディングのタイプです。

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

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

 node publicDecrypt.js 

publicDecrypt.js

 // crypto.publicDecryptデモの例//暗号、fs、パスのインポートmodulevar crypto =require('crypto'); var fs =require('fs'); const path =require('path'); / /キーを生成するための以下の関数の作成functiongenerateKeyFiles(){const keyPair =crypto.generateKeyPairSync('rsa'、{modulusLength:520、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();//プライベートキーとパブリックキーの読み取りvarprivate =fs.readFileSync('private_key'); var public =fs.readFileSync( ' public_key');//元のdatavarデータの定義='TutorialsPointへようこそ';console.log( "元のデータは:" + data);//秘密鍵を使用してデータを暗号化するencrypted=crypto.privateEncrypt(private、Buffer.from (data、'utf8'))。toString('base64');//データの復号化usigpublicKeyoriginalData =crypto.publicDecrypt(public、Buffer.from(encrypted、'base64')); console.log(); //暗号化されたmsgconsole.log( "暗号化された秘密鍵:" + Encryption); console.log(); //復号化されたmsgconsole.log( "復号化された公開鍵:" + originalData.toString()); 

出力

 C:\ home \ node>> node publicDecrypt.jsOriginal Data is:Welcome to TutorialsPointEncrypted with private key:EFBihrKebXb0gfCF7nTnw82yXpToH5eVBpLc8O5QL / ZgfZ / qJT5I / BejSMwV4NFCp + AIKnz2lrjm 

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

//crypto.publicDecryptデモの例//cryptoとfsモジュールのインポートvarcrypto=require('crypto'); var fs =require('fs');//キーを生成するための以下の関数の作成functiongenerateKeyFiles(){const keyPair =crypto.generateKeyPairSync('rsa'、{modulusLength:520、publicKeyEncoding:{type:'spki'、format:'pem'}、privateKeyEncoding:{type:'pkcs8'、format:'pem'、cipher:'aes -256-cbc'、パスフレーズ:''}}); //以下の名前で公開鍵ファイルを作成しますfs.writeFileSync( "public_key"、keyPair.publicKey); fs.writeFileSync( "private_key"、keyPair.privateKey);} //生成キーの呼び出しmethodgenerateKeyFiles();//秘密鍵の読み取りprivateKey=fs.readFileSync('private_key')。toString(); var buffer =Buffer.from( 'Welcome to TutorialsPoint'、'utf8'); console.log( "暗号化前のデータバッファー")console.log(buffer);//バッファーの暗号化textencrypted=crypto.privateEncrypt(privateKey、buffer);//データの印刷after Encryptionconsole.log( "暗号化後のデータ:"); console.log(encrypted);//公開鍵の読み取りpublicKey=fs.readFileSync('public_key')。toString(); //publickeyを使用して暗号化されたテキストを復号化decryptedData=crypto.publicDecrypt(publicKey、encrypted); //元のcontentconsole.log( "復号化後のデータ:"); console.log(decryptedData); 
を出力します

出力

 C:\ home \node>>ノードpublicDecrypt.js暗号化前のデータバッファ<バッファ57656c 63 6f 6d 65 20 74 6f 20 54 75 74 6f 72 69 61 6c 73 50 6f 696e 74>暗号化後のデータ:<バッファa69de3 86 9f 3f 4b b9 3f f7 a6 9c 7c 16 0f 04 b9 c4 16 0b 08 f1 0639 de 32 75 7c 26 88 fa 49 bd 31 6b 4b 4d 02 e6 87 56 ee 9c 95 53 10 8f2849f5。 ..>復号化後のデータ:<バッファ57 65 6c 63 6f 6d 65 20 74 6f 20 54 75 74 6f 72 69 61 6c 73 50 6f 696e 74> 

  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という名前のファイルを作成し、以下のコードスニペットをコピーします。ファイルを作成したら、次のコマンドを使用して、以下の例に示すよ