私は暗号化が初めてで、nodejs を使用してアプリを提供しています。
私のアプリは、本番前に暗号化したい構成ファイルを使用しています.nodejsサーバーがこれらのファイルを(本番環境で)必要とするとき、それらは復号化されます.
crypto.createCipheriv(algo, key, iv)
暗号化に使用しています。アルゴは「aes-256-ctr」です。キーはパスワードで作成されます。
const key=crypto.createHash('sha256').update(String(password)).digest('base64').substr(0,32)
iv は次のように生成されます。
const iv = crypto.randomBytes(16)
したがって、ファイルを復号化したい場合は、キーと iv が必要です。キーの生成に使用するパスワード (ハッシュ) を保存し、ユーザーが指定したパスワードと照合しますが、iv を保存して取得するにはどうすればよいですか?
iv (fs.writefile と iv const を使用) をファイルに書き込んで読み取ろうとすると、復号化しようとすると次のエラーが表示されます。
エラー: キーの長さが無効です
サーバーでivを生成して使用すると、問題なく暗号化/復号化されます。
私の質問は、後でファイルを復号化するために使用した IV をどのように保存すればよいですか? 後で解読しようとするときにどのように使用しますか?
構成ファイルを暗号化して復号化するためのより良い方法/プラクティスはありますか? 構成データ、ユーザー/パスワードなどの暗号化/ハッシュ化された個人データをアプリに提供したいと考えています。
私のやり方は正しいですか、それとも間違った方向に進んでいますか? 暗号化に精通したユーザーが私を助けてくれることを感謝します...
ありがとう