以前書いた、「あるデータをパスフレーズで暗号化し、公開ストレージ(URLが判明すれば誰でも読み取り可能)に暗号化ファイルの形式で保存し(期間は無期限)、あとからパスフレーズで復号して読み取るためのコード」を改修するため、「AES-256 GCM、または、ChaCha20-Poly1305を用いて、データを1つのパスフレーズを用いて暗号化するライブラリ」をTypeScriptで書こうと考えています。 この場合の要件は: 暗号化したデータは、第三者が自由に読み取り可能であり、その場合でも安全性を保つ必要がある 暗号化したデータは、無期限で利用される場合がある。したがって、短期間のみ用いるものではない 暗号化したデータには、パスフレーズを除く、復号に必要な情報がすべて含まれる。暗号化と複合に必要な秘密情報はパスフレーズのみ になります。例えるなら、Gitリポジトリ内で特定のファイルを暗号化するよ
![AES-256 GCMに渡すkeyに、パスワードそのものではなく、鍵導出関数(PBKDF2など)で生成したハッシュ値を指定する理由は?](https://cdn-ak-scissors.b.st-hatena.com/image/square/d61d99447f3434c475f38686e3fcb4f6ab93528f/height=288;version=1;width=512/https%3A%2F%2Fteratail.com%2Fimg%2FogpImages%2FimgFacebookShare.png)