-
Node.jsのcrypto.randomFillSync()メソッドの使い方を徹底解説
crypto.randomFillSync()メソッドは、引数として受け取ったバッファに暗号学的に強度の高いランダムな値(乱数)を書き込み、そのバッファを戻り値として返します。メソッド名に「Sync」と付いている通り、処理は同期的に実行されます。このメソッドは、セキュリティトークンや識別子の生成など、予測不可能な乱数が必要な場面で活用されます。構文crypto.randomFillSync(buffer, [offset], [size])パラメータ各パラメータの詳細は以下の通りです。なお、第2引数のoffsetと第3引数のsizeは省略可能です。buffer –&nbs
-
Node.jsのcrypto.scrypt()メソッドの使い方を徹底解説
Node.jsのcrypto.scrypt()メソッドは、scryptアルゴリズムを非同期で実行するための機能です。scryptはパスワードベースの鍵導出関数(KDF:Key Derivation Function)の一種であり、ブルートフォース攻撃(総当たり攻撃)からシステムを保護し、攻撃のコストを大幅に引き上げる役割を果たします。その一方で、scrypt関数は計算コストとメモリ消費が非常に高いという特徴を持っています。構文crypto.scrypt(password, salt, keylen, [options], [callback])パラメータの説明各パラメータの詳細は以下の通りです
-
Node.jsのdecipher.final()メソッドの使い方を徹底解説
Node.jsのdecipher.final()メソッドは、decipherオブジェクトが保持する残りのデータを含むバッファ(Buffer)または文字列を返すために使用されます。このメソッドは、cryptoモジュールのDecipherクラスに組み込まれているメソッドの1つです。重要な注意点として、decipher.final()メソッドを一度呼び出した後は、同じdecipherオブジェクトでそれ以上データを復号化することはできません。また、final()メソッドを複数回呼び出すとエラーがスローされます。構文decipher.final([outputEncoding])パラメータこのメソッドが
-
Node.jsのdecipher.update()メソッドの使い方を徹底解説
decipher.update()メソッドは、指定されたエンコード形式に従って、受信したデータでdecipher(復号)オブジェクトを更新するために使用されるメソッドです。cryptoモジュール内のDecipherクラスが提供する組み込みメソッドの一つであり、暗号化されたデータを段階的に復号する際に重要な役割を果たします。なお、入力エンコーディングを指定した場合、data引数は文字列として扱われ、指定しない場合はBuffer(バッファ)として扱われる点に注意が必要です。 構文 decipher.update(data, [inputEncoding], [outputEncoding]) パ
-
Node.jsのcrypto.createDecipheriv()メソッドの使い方を徹底解説
crypto.createDecipheriv()は、Node.jsの「crypto」モジュールが提供するプログラミングインターフェースの一つです。指定されたアルゴリズム、鍵(キー)、初期化ベクトル(iv)、およびオプションに基づいてDecipher(復号)オブジェクトを作成し、返します。暗号化されたデータを元の平文に戻す際に使われる、非常に重要なメソッドです。 構文 crypto.createDecipheriv(algorithm, key, iv, [options]) パラメータ 各パラメータの詳細は以下の通りです。 algorithm – 暗号の作成に使用する
-
Node.jsのcrypto.createDiffieHellmanGroup()メソッドとは?使い方を徹底解説
crypto.createDiffieHellmanGroup() メソッドは、Node.jsのcryptoモジュールにおいて、事前に定義されたDiffie-Hellman鍵交換グループ(DiffieHellmanGroup)オブジェクトを作成するために使用されます。このメソッドは crypto.getDiffieHellman() のエイリアス(別名)としても機能するため、どちらの名前で呼び出しても同じ動作になります。構文crypto.createDiffieHellmanGroup(name)パラメータname ― 作成するグループ名を指定します。データ型は「string(文字列)」です。
-
Node.jsのcrypto.createECDH()メソッドの使い方を徹底解説
Node.js の crypto.createECDH() メソッドは、引数として渡した曲線名(curveName)で指定される事前定義済みの楕円曲線をもとに、ECDH(Elliptic Curve Diffie-Hellman)オブジェクトを生成します。ECDH は、通信当事者間で共有秘密鍵を安全に確立するための鍵交換プロトコルであり、暗号化通信の基盤として広く利用されています。利用可能な曲線名の一覧は、crypto.getCurves() を呼び出すことで取得できます。なお、このメソッドは crypto モジュールの一部です。 構文 crypto.createECDH(curveName)
-
Node.jsのcrypto.createSign()メソッドの使い方を徹底解説
crypto.createSign()メソッドとは Node.jsのcrypto.createSign()メソッドは、引数に渡されたアルゴリズムを使用して署名(Sign)用のオブジェクトを生成し、そのインスタンスを返します。利用可能なダイジェストアルゴリズムの一覧は、crypto.getHashes()メソッドで確認できます。また、一部のケースでは、ダイジェストアルゴリズム名の代わりに「RSA-SHA256」のような署名アルゴリズム名を直接指定してSignインスタンスを作成することも可能です。 生成されたSignオブジェクトは書き込み可能なストリームとして動作するため、署名対象となるデータをw
-
Node.jsのcrypto.createVerify()メソッドの使い方をわかりやすく解説
crypto.createVerify()メソッドとはNode.jsのcrypto.createVerify()メソッドは、引数で指定したアルゴリズムを使用する検証(Verify)オブジェクトを生成して返します。利用可能な署名アルゴリズムの一覧は、crypto.getHashes()メソッドで確認できます。また、一部のケースではダイジェストアルゴリズムの代わりに、「RSA-SHA256」のような署名アルゴリズム名を直接指定してVerifyインスタンスを作成することも可能です。構文crypto.createVerify(algorithm, [options])パラメータこのメソッドが受け取るパ
-
Node.jsのcrypto.generateKeyPair()メソッドで非対称鍵ペアを生成する方法
crypto.generateKeyPair()メソッドは、指定した種類の新しい非対称鍵ペア(公開鍵と秘密鍵のペア)を生成するために使用されます。鍵ペアの生成に対応しているタイプは、RSA、DSA、EC、Ed25519、Ed448、X25519、X448、DHです。publicKeyEncodingまたはprivateKeyEncodingが指定された場合、この関数は結果に対してkeyObject.export()を呼び出した場合と同じように動作し、エンコードされた鍵データを返します。指定されていない場合は、keyObjectの該当する部分がそのまま返されます。 構文 crypto.gene
-
Node.jsのcrypto.generateKeyPairSync()メソッドの使い方を徹底解説
crypto.generateKeyPairSync()メソッドは、指定したタイプの新しい非対称鍵ペアを同期的に生成するために使用されます。鍵ペアの生成に対応しているタイプは、RSA、DSA、EC、Ed25519、Ed448、X25519、X448、DHの8種類です。この関数は、publicKeyEncodingまたはprivateKeyEncodingが指定された場合、結果に対してkeyObject.exportが呼び出されたかのように動作します。エンコーディングが指定されていない場合は、keyObjectの該当する部分がそのまま返されます。公開鍵のエンコーディングには「spki」、秘密鍵に
-
【初心者向け】Node.jsのcrypto.getCiphers()メソッドの使い方と実行例を解説
crypto.getCiphers()メソッドは、Node.jsがサポートしているすべての暗号アルゴリズム(cipher algorithm)の名称を配列として返します。cryptoモジュールには膨大な数の暗号アルゴリズムが組み込まれており、開発者は用途に応じて自由に選択できます。中でも最も広く使われているのは「AES(Advanced Encryption Standard:高度暗号化標準)」です。この記事では、getCiphers()メソッドの基本構文から、実際にコードを実行して暗号アルゴリズムの一覧を取得する方法まで、サンプルコード付きでわかりやすく解説します。構文crypto.getC
-
Node.jsのcrypto.getCurves()メソッドの使い方を徹底解説
crypto.getCurves()メソッドとは Node.jsのcrypto.getCurves()メソッドは、OpenSSLがサポートしているすべての楕円曲線(Elliptic Curve)の名前を文字列の配列として返します。cryptoパッケージには多数の楕円曲線が組み込まれており、これらはECDH(Elliptic Curve Diffie-Hellman)鍵交換オブジェクトの生成など、さまざまな暗号処理に活用できます。 構文 crypto.getCurves() パラメータ このメソッドは、システムで利用可能なすべての楕円曲線の一覧を返すだけのため、引数を受け取りません。 戻り
-
Node.jsのcrypto.getDiffieHellman()メソッドとは?構文・使い方・サンプルコードを解説
crypto.getDiffieHellman()メソッドは、Node.jsのcryptoモジュールに用意されている関数の一つで、事前に定義されたDiffie-Hellmanグループをもとに鍵交換オブジェクトを生成します。利用できる主なグループとしては、modp1、modp2、modp5、modp14、modp16、modp17などがあります。なお、このメソッドはcrypto.createDiffieHellmanGroup()の別名(エイリアス)であり、両者はまったく同じ動作をします。このメソッドを利用する最大のメリットは、通信当事者がグループの法数(モジュラス)を自ら生成したり交換したりす
-
Node.jsのcrypto.createHmac()メソッドの使い方を徹底解説
crypto.createHmac()メソッドは、指定されたアルゴリズムと鍵(キー)に基づいてHMACオブジェクトを生成し、そのオブジェクトを返します。HMAC(Hash-based Message Authentication Code)は、メッセージの完全性と認証を検証するために広く使われる暗号技術であり、APIリクエストの署名やデータの改ざん検出など、さまざまな場面で活用されています。任意のoptionsパラメータを使用することで、ストリームの動作を制御することも可能です。ここで定義する鍵は、暗号学的なHMACハッシュを生成するためのHMAC鍵として使用されます。 構文 crypto.c
-
Node.jsのcrypto.pbkdf2()メソッドとは?基本構文と使い方を解説
crypto.pbkdf2()とは crypto.pbkdf2()は、Node.jsのcryptoモジュールが提供する「パスワードベース鍵導出関数(Password-Based Key Derivation Function)」の非同期実装です。パスワード・ソルト・反復回数を入力とし、指定したアルゴリズムのHMACダイジェストを用いて安全な鍵を導出します。 PBKDF2は、パスワードをそのまま保存する代わりに計算コストの高い導出処理を挟むことで、総当たり攻撃(ブルートフォース攻撃)への耐性を高める手法です。パスワードのハッシュ保存や暗号鍵の生成など、セキュリティが求められる場面で広く活用されて
-
Node.jsのcrypto.pbkdf2Sync()メソッドとは?使い方とサンプルコードを解説
crypto.pbkdf2Sync()メソッドの概要crypto.pbkdf2Sync()は、Node.jsのcryptoモジュールが提供する「PBKDF2(Password-Based Key Derivation Function 2)」の同期版実装です。このメソッドは、パスワード・ソルト・反復回数を基に、指定したHMACダイジェストアルゴリズムを使って鍵(キー)を導出します。名前に「Sync」が付いている通り、処理は同期的に実行され、鍵の導出が完了するまで次の処理に進みません。なお、非同期で処理したい場合はcrypto.pbkdf2()を使用します。大量の反復回数を設定した場合、同期版は
-
Node.jsのcrypto.randomBytes()メソッドの使い方を解説
crypto.randomBytes()メソッドとは Node.jsのcrypto.randomBytes()メソッドは、暗号学的に強度の高い疑似乱数データを生成するための機能です。このメソッドは、生成されるバイト列に十分なエントロピーが確保されるまで処理を完了しませんが、実際にかかる時間は数ミリ秒程度に収まります。生成されたランダムバイト列は、セッショントークンや暗号鍵など、セキュリティに関わるさまざまな用途に活用できます。 構文 crypto.randomBytes(size, [callback]) パラメータ 各パラメータの詳細は以下のとおりです。 size – 生成する
-
Node.jsのagent.maxFreeSocketsプロパティとは?構文と使い方を実例付きで解説
agent.maxFreeSocketsプロパティは、フリー状態(アイドル状態)にあるソケットを最大いくつ開いたまま保持するかを定義するものです。Node.jsの「http」モジュールインターフェースの一部であり、主にHTTP通信のパフォーマンスチューニングや接続の再利用制御に活用されます。 なお、同様の目的で使われるmaxSocketsは「アクティブなソケット全体の上限」を定めるのに対し、maxFreeSocketsは「未使用のソケットをいくつまでプールしておくか」を制御する点が異なります。 構文 agent.maxFreeSockets : number パラメータ このプロパティで
-
Node.jsのagent.maxSocketsプロパティとは?使い方と設定例を解説
Node.jsのagent.maxSocketsプロパティは、HTTPエージェントがオリジン(ホストとポートの組み合わせ)ごとに同時に開くことができるソケットの最大数を定義するものです。デフォルト値はInfinity(無制限)に設定されており、同時接続数に上限がない状態になっています。このプロパティはNode.js標準の「http」モジュールに含まれる機能の一つです。syntax(構文)agent.maxSockets: numberパラメータnumber(数値) – エージェントが保持できる同時接続ソケットの最大数を指定します。デフォルト値はInfinityです。maxSocketsのポイン