で暗号化されたデータを格納する MySQL テーブルがありますopenssl
。
friends
fieldsという名前の MySQL テーブルがあるとしますid, name, surname
。
フィールドを暗号化したいだけですname
。だから私はそれを使用して暗号化しopenssl_public_encrypt
、それをテーブルに保存します。それはうまくいきます。
レコードを読み取る必要がある場合は、それを選択して復号化name
しopenssl_private_decrypt
、読み取ることができます。また、正常に動作します。
ここに私の問題があります。すべてのレコードを見つける必要があるとしましょうname = 'carlos'
私が最初にしたこと(私はopensslの初心者です)は、'carlos'
その値を暗号化して条件として使用することでした:
<?php
openssl_public_encrypt('carlos', $encrypted, $myPublicKey);
$query = 'SELECT * FROM friends WHERE name ="' . $encrypted . '"; ';
?>
しかしopenssl_public_encrypt
、同じ入力に対して常に異なる値を返すことに気付きました。したがって、最初の暗号化された値を複製できません。
そのフィールドを条件として使用することは不可能だと今私は考えています。
質問: MySQL でフィルター処理の条件として openssl で暗号化されたフィールドを使用する方法はありますか?