状況
ユーザー名、メールアドレス、パスワードで会員登録をしてもらうwebサービスを考えています。
パスワードは認証時に見比べるのに使うだけなのでハッシュ化して保存しているのですが、メールアドレスはハッシュ化してしまったら使えなくなってしまうので、暗号化し、必要なときに復号化できるようにすればいいのかなと考えました。
実現したいこと
同じメールアドレスでは登録できないように、入力されたメールアドレスがすでにデータベースに存在するかのチェックをしたい。
わからないこと
データベースには暗号化されたメールアドレスが入っているので、入力されたメールアドレスと一致するものがあるのかは復号化しないとチェックができない。
一応わからないなりに、二つのやり方を考えました。
- すべてのメールアドレスを復号化してチェックする
- チェック専用で暗号化とは別にハッシュ化したアドレスも保存して見比べる
どちらが適切か、またはどちらも適切でない場合、
他にどのような方法があるのかを教えてください。
お願いします。
使うもの
express
mariaDB
nodeのcryptoモジュール
暗号化のアルゴリズムはaes-256-cbc
回答1件
あなたの回答
tips
プレビュー