現在、ユーザーのGUIDを検証コードとして持つリンクを送信する電子メール検証コードを作成しました。これは安全ではないと思うので、確認コードを作成する最も簡単な方法を教えてください。
私が考える最も簡単で簡単な方法は、ある種のハッシュを作成してデータベースに入れることです。ユーザーがリンクをクリックすると、リンクの値とデータベースのハッシュが比較されます。しかし、データベースに 1 回だけ使用される単一の列が必要になるのはなぜでしょうか? それはスペースの無駄です。
現在、ユーザーのGUIDを検証コードとして持つリンクを送信する電子メール検証コードを作成しました。これは安全ではないと思うので、確認コードを作成する最も簡単な方法を教えてください。
私が考える最も簡単で簡単な方法は、ある種のハッシュを作成してデータベースに入れることです。ユーザーがリンクをクリックすると、リンクの値とデータベースのハッシュが比較されます。しかし、データベースに 1 回だけ使用される単一の列が必要になるのはなぜでしょうか? それはスペースの無駄です。
通常、パスワードのリセットコードであるランダムな値(Guidはこれに適しています)を作成します。コードの有効期限が切れ、1回だけ使用できるようにする必要があります。パスワードのリセットを含む古いメールを誰かが読んだり、コードをリセットしたりすることは望ましくありません(UserID Guidを使用するとコードは常に同じになるため)。
ここSOでフォームベースのウェブサイト認証の決定的なガイドを見てください。それは多くの有用な情報を持っています。
ユーザーのGUIDで(おそらくSALTを使用して)単純な対称暗号化を実行し、検証としてユーザーのGUIDを単純に復号化できると言えます。