ホームページ  >  記事  >  バックエンド開発  >  mysql - PHP バイナリ暗号化データはデータの一意性をどのように保証しますか?

mysql - PHP バイナリ暗号化データはデータの一意性をどのように保証しますか?

WBOY
WBOYオリジナル
2016-08-30 09:36:441229ブラウズ

企業データベース内の機密ユーザーデータはバイナリ暗号文に暗号化され、mysql blob type フィールドに保存される必要があることが判明しました。直接論理演算を行うことはできません。また、テーブルをすべての暗号文を読み取って復号化し、論理演算を実行することもできません

返信内容:

企業データベース内の機密ユーザーデータはバイナリ暗号文に暗号化され、mysql blob type フィールドに保存される必要があることが判明しました。直接論理演算を行うことはできません。また、テーブルをすべての暗号文を読み取って復号化し、論理演算を実行することもできません

ユーザーIDに基づいて暗号文MD5をキャッシュします

これを行うべきだと思います:

  1. 新しいデータを追加するときは、暗号化する前にプレーンテキストのMD5ハッシュを実行し、ハッシュ値を保存します(もちろん、暗号化されたBLOBも保存する必要があります)

  2. 既存のデータに関しては、時間を見つけてすべてのMD5を復号し、ハッシュ値を保存する必要があります

この方法で一意性を判断するには、通常、ハッシュ値を直接判断するだけで十分です。

同じ平文暗号化で常に同じ暗号文が生成されることが保証できない限り、md5 暗号文はお勧めできません。ただし、鍵を変更すると、暗号文は少なくとも鍵の影響を受けます。また、暗号化方式自体がランダム化された初期ベクトルを持つものもあり、暗号化される暗号文は毎回異なります。

mysql 組み込みメソッド hex() を直接使用する

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。