- 締切済み
AES_ENCRYPTとAES_DECRYPTについて
大変困っています。テーブルに暗号化して書き込むことはできました。ですがテーブルから引っ張ってこようとしたとき問題が起きました。 select * from tableとやると暗号化されたまま出てきました。問題ありません。 次に select * from table where aa = 'bb' としたときに事件が起きました。一致するレコードがありません。どうして? あ、そうか! select aes_decrypt(aa,'111') from table where aa = 'bb'一致するレコードがありません。 な、なぜだ?さっぱりわかりません。 暗号化してしまったレコードはwhere条件を指定できないのでしょうか? もし、知っていらっしゃる方がいましたらどうか教えてください。 是非是非よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- wakame0729
- ベストアンサー率32% (245/765)
回答No.1
mysqlによる暗号化は使った事が無いのですが、暗号化された状態でデータが格納されている訳ですから、whereでの条件も暗号化して検索してあげないといけないのでは?
補足
ありがとうございます。おかげで一致するレコードを発見することができました。 ですが新たな問題が・・・・・ 一致するレコードは見つかったのですが 暗号化してあるところが空白で出てきてしまいます。 パスワードが間違えたかな?いや、間違いない。 decrypt()の構文はあっているかな?あっていた。 selectでdecryptを発行するときはどうやって発行すればいいか知っている方、よろしくお願いします。