2012-01-02 8 views
6

データベース内で暗号化されたプロファイルの詳細を保存したい。しかし、いくつかの詳細は一意でなければならず、暗号化アルゴリズムは各暗号化のシードをランダム化するので、その値がすでにデータベースに格納されているかどうかを判断するのは徹底的です。暗号化された文字列をランダムな種と比較するには?

  • 各行をループして必要な列を復号化できますが、行数が多いと時間がかかりすぎる可能性があります。
  • 私はこれらの(暗号化されていない)詳細のハッシュを格納することができましたが、それは最初の場所で暗号化のポイントを殺すでしょう

暗号化された文字列(ランダムなシード)とデータベースに保存された他の文字列を比較するにはどうすればよいですか?

ご協力いただきまして誠にありがとうございます。暗号化は、PHP(MCRYPT_RIJNDAEL_256/NOFB)で行われ、データベースはMySQLです。

編集/ソリューション:暗号化された値に加えてデータのハッシュを格納することが私の最善の解決策であるようです。そうすれば、ユニークな列の検証が容易になります。誰もコメント/回答を残してくれてありがとう。

+0

興味深い質問ですが、私は "別の列に暗号化されていないものを格納してください"という答えはないと思います...しかし、私たちは見るでしょう –

+1

私は、ユーザー名。この方法では、あるユーザーのプロファイルフィールドがわかっている場合、そのフィールドに同じ値を持つ他のユーザーは、そのハッシュが異なるため、そのユーザーを推測することはできません。 – halfer

+0

@Pekkaはい、見てみましょう... – Alasjo

答えて

3

あなたが今言う必要のある機能を提供していないアルゴリズムを選択しました。アルゴリズムを選択する前に、の要件を満たす必要があります。

+1

さて、それはアルゴリズム、任意の提案を変更するには遅すぎるのではないのですか? – Alasjo

+1

すべてのパスワードに同じシードを使用するか、2つの別々のトラッキングスキームを使用するか、重複をキャッチする(パスワードを持つユーザーは追跡しません)と認証するために1つのトラッキングスキームを使用します。 –

+0

質問はパスワードに関するものではありませんでしたが、私は比較のために別のデータセットの必要性を見ています。ありがとう。 – Alasjo

関連する問題