常識では、侵入者がデータベースにアクセスした場合、ファイル システムにもアクセスできる可能性が高いと言われています。それは本当にあなた次第です。一つには、それを隠そうとすることができます。構成ファイルでは、ファイルシステムのどこかにあるプレーンファイルで、アプリケーション内にある別のキーで暗号化します...などなど。
構成ファイルは論理的な答えですが、チャンスをつかむ理由はありません。複数レベルの暗号化と自由にキーを混在させてください。1 つはレコード自体から何かを必要とし、すべてのレコードに固有のもの、もう 1 つは構成値を必要とするもの、3 番目はアプリケーション固有の値を必要とするもの、そしておそらく非表示のライブラリからの 4 番目のものです。あなたのアプリケーションの参照の範囲内ですか?このようにして、1 つのレイヤーが何らかの形で危険にさらされたとしても、他のレイヤーでそれを保護することができます。
はい、オーバーヘッドが追加されます。はい、比較的高価です。しかし、ユーザーのクレジット カード情報などの機密データがある場合、それだけの価値があるでしょうか? きっとそうです。
私は、非常にセキュリティに重点を置き、慎重に管理されている私の個人的なペット プロジェクトの 1 つで、同様の暗号化およびハッシュ技術を使用しています。一度に表示する必要があるデータの量によって異なります。たとえば、私の場合は一度に 10 レコードしか取得できず、おそらくそれ以下です。
... 混合の意味を明確にするには: 一度暗号化します。次に、別のキーと提案されている別のアルゴリズムを使用して、そのデータを再度暗号化します。