2

私は暗号化が初めてで、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 をどのように保存すればよいですか? 後で解読しようとするときにどのように使用しますか?

構成ファイルを暗号化して復号化するためのより良い方法/プラクティスはありますか? 構成データ、ユーザー/パスワードなどの暗号化/ハッシュ化された個人データをアプリに提供したいと考えています。

私のやり方は正しいですか、それとも間違った方向に進んでいますか? 暗号化に精通したユーザーが私を助けてくれることを感謝します...

ありがとう

4

1 に答える 1