2

機密テキスト トークンを AES で暗号化し、データベースに保存します。完全一致を検索するだけでなく、これらのトークンを部分的に検索したいと考えています。すべてのトークンを復号化するには時間がかかりすぎるため、データベースの別の列にトークンの先頭をクリア テキストとして保存することを考えています。

トークンは 90 文字で、ユーザーごとに一意です。たとえば、最初の 20 文字を保存します。

誰かがデータベースのコピーを入手した場合、それはセキュリティ上の問題になるのでしょうか?つまり、明確な部分を含む完全なトークンを再構築する方が簡単でしょうか?

私のAES暗号化設定は次のとおりです。

  • 32 バイトの暗号化キーを使用した AES-128。
  • 暗号化モードは CBC です。
  • IV はトークンごとに一意です。
4

1 に答える 1

3

PBKDF2 の最初の 20 バイトと 10,000 回の繰り返しなど、各値 (または各値が長い場合は各値の最初の部分) のハッシュを作成し、それを別のフィールド/列として保存します。値を確認するには、同じ操作を実行し、新しいフィールドに対して確認します。新しいフィールドの値は元に戻すことができず、比較操作は安価です (単純なバイナリ比較)。

于 2012-09-11T14:21:37.057 に答える