【Node.js24.x】Object::createCipheriv()メソッドの使い方
createCipherivメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
createCipherivメソッドは、指定された暗号化アルゴリズム、秘密鍵、そして初期化ベクトル(IV)を用いて、データを暗号化するためのストリームを生成するメソッドです。このメソッドは、Node.jsのcryptoモジュールに属しており、アプリケーションにおけるデータセキュリティを確保する上で非常に重要な役割を果たします。特に、初期化ベクトル(IV)を使用することで、同じ秘密鍵と平文からでも毎回異なる暗号文が生成されるため、暗号文のパターン分析による攻撃を防ぎ、暗号化の安全性を高めることができます。
引数としては、まず使用する暗号化アルゴリズムの名前(例: 'aes-256-cbc')、次にデータを暗号化するための秘密鍵、そしてランダムな値である初期化ベクトル(IV)を渡します。これらの情報は、暗号化処理を実行するために不可欠です。本メソッドは、データの書き込みを許可するWritableストリームとして機能し、書き込まれた平文データを暗号化して、読み取りを許可するReadableストリームとして暗号文を出力するCipherオブジェクトを返します。
このCipherオブジェクトを利用することで、ファイル全体を一度にメモリに読み込むことなく、大きなデータでも効率的に暗号化処理を行うことが可能です。ウェブアプリケーションにおけるユーザーデータの保護、機密ファイルの暗号化保存、ネットワーク経由での安全なデータ転送など、幅広いセキュリティ要件に対応するために活用されます。生成された暗号文を元のデータに戻す(復号化する)際には、対応するcreateDecipherivメソッドを使用します。
構文(syntax)
1const crypto = require('node:crypto'); 2 3const algorithm = 'aes-256-cbc'; 4const key = crypto.randomBytes(32); // 鍵(Buffer) 5const iv = crypto.randomBytes(16); // 初期化ベクトル(Buffer) 6 7const cipher = crypto.createCipheriv(algorithm, key, iv);
引数(parameters)
algorithm, key, iv, options
- algorithm: string: 暗号化アルゴリズムの名前 (例: 'aes-256-cbc')
- key: Buffer | string | TypedArray | DataView: 暗号化に使用する鍵
- iv: Buffer | string | TypedArray | DataView: 初期化ベクトル (IV)
- options: object: オプション設定 (例: { authTagLength: 16 })
戻り値(return)
Cipher
このメソッドは、指定されたアルゴリズム、キー、初期化ベクトルを使用して、暗号化処理を行うためのCipherオブジェクトを生成します。