私は、ユーザーが通常のハッシュパラメータを含む各ユーザーの特定の(しかし長い)確認リンクを備えた一般的な電子メール確認スクリプトを使用して電子メールを確認する必要があるサイトを持っています。
私が抱えている問題は、使用しているデバイスが原因で、長くて複雑な確認リンクに問題があるユーザーがいることです。
そのため、ユーザーごとに一意の確認リンクを生成する別の方法を作成する必要があります。これにより、パターンが明確にならず、理解されたり悪用されたりすることがなくなります。
私はBase62のエンコードとデコードを見てきましたが、私が見つけたものは数字のみに基づいているため、シーケンシャルな一意のユーザーIDを使用することに制限され、エンコードされた結果に明らかなシーケンシャルパターンが作成され、簡単に悪用される可能性があります。
できれば、DBを変更する必要のないソリューションが必要です。
理想的には、基本的にBit.lyや他のURL短縮サービスが独自のURLを作成するのと同じように短縮URLを作成したいのですが、それはユーザーID、ユーザー名、または電子メールのいずれかからエンコードおよびデコードでき、できればエンコード/デコードは、エンコードされた結果にパターンが現れないように、一意のキーで「ソルト」されます。
例:
したがって、確認リンクの代わりに次のようになります。
http://domain.com/confirm?email=blah@blah.com&hash=1f3870be274f6c49b3e31a0c6728957f
私はそれを次のように見せたいです:
http://domain.com/confirm/Sg5rdn
次に、Sg5rdnをデコードして、ユーザーのユーザー名、ユーザーID、または電子メールを取得し、それらを確認します。
これも可能ですか?