ユーザーの個人データを暗号化してデータベースに保存したい。
暗号化はアプリケーションで行う必要があります(SQLサーバー側ではできません)
今、私は各ユーザーのパスワードを使用してデータを暗号化し、後で復号化することが可能かどうか疑問に思いますか?このアプローチの長所と短所は何ですか/
ユーザーの個人データを暗号化してデータベースに保存したい。
暗号化はアプリケーションで行う必要があります(SQLサーバー側ではできません)
今、私は各ユーザーのパスワードを使用してデータを暗号化し、後で復号化することが可能かどうか疑問に思いますか?このアプローチの長所と短所は何ですか/
1つの大きな「短所」:ユーザーが自分のパスワードを変更した場合はどうなりますか?次に、すべてのデータを再暗号化する必要があります。
ユーザーの安全な個人データを保存したいとおっしゃいました。個人情報がない限りこれを行う。非常に敏感であるということは、多くの理由から一般的には推奨されません。ただし、一般的に行われるのは、ユーザーのパスワードのハッシュとソルトです。
このページには、ハッシュとソルトがどのように機能するか、およびパスワードを暗号化してから復号化するよりも優れている理由についての適切な説明があります。
http://net.tutsplus.com/tutorials/php/understanding-hash-functions-and-keeping-passwords-safe/
ユーザーの個人情報の暗号化に関しては、パスワードと同じように、非常にシンプルですが、アプリケーションで効果的なカスタムソルト+ハッシュアルゴリズムを使用して、永続的、静的、永続的であることが期待されるuserIDと同等のカスタムハッシュを使用できます。
uID(またはすべてのユーザーに固有の特殊な文字列)を通常のパブリックから隠すことができ、許可されていないソースからカスタム共有機能にアクセスできないようにするため、安全なシステムが確保されています。
つまり、userIDなどの一意の文字列に基づいて個人情報をハッシュ+ソルトし、ユーザーのパスワードもハッシュ+ソルトします。個人情報を復号化するには、userIDハッシュとパスワードハッシュの両方がデータベースと一致している必要があります。
より良いアプローチは、プログラム内で既知の暗号化プロトコルを使用することです。たとえば、HTTPS TLSを介して送信されるデータは、正しく実装されていれば非常に安全です。