0

どの暗号化スキームが短い文字列を返しますか?32文字未満の小さな結果が必要です。また、元の平文に復号化できるようにしたいと思います。目的は、コードが電子メールで送信される電子メール検証です。コードを受け取ると、ユーザーはサイトにログインしてコードを入力します(またはリンクをクリックします)。

編集:検証後、2つの無関係なレコードを関連付ける必要があるため、説明は重要です

ありがとう

4

5 に答える 5

1

このような検証システムは、暗号化されたデータではなく、ランダムに生成された文字列(アカウントの作成時にデータベースに保存される)を使用します。

于 2012-06-19T06:20:31.567 に答える
0

復号化する必要がありますか?重複しないランダムな文字列を生成し、そのコードをそのユーザーに割り当てることができます。次に、コードを検索して、データベースからユーザーを取得します。機能を追加して、作成された時間を保存し、24時間で期限切れにすることができます

于 2012-06-19T06:21:02.130 に答える
0

セキュリティが必要ない場合は、一方向のハッシュ関数で十分です。CRC32は良い選択です。メッセージを送信してから、ユーザーが同じ応答を入力するのを待つことができます。

于 2012-06-19T06:21:55.433 に答える
0

あなたは暗号化について話しているが、明らかにハッシュ関数が必要である。次に、データベース内の任意のデータモデル(この場合は「暗号化」したいもの)にハッシュを関連付けることができます。ハッシュはKey-Valueストアのキーのように使用され、完全にランダムにすることができます。暗号化された文字列の最終的なサイズは、常に元の文字列のサイズに直接関係しています。そうしないと、ハッシュと暗号化を混同している可能性があります。

したがって、単純なユースケース:

  • ユーザーがWebサイトに登録します。
  • 登録コントローラーは、user_idとrandom_keyの2つの列しかない'pending_users'テーブルに新しいレコードを作成します。
  • そして、verification.php?key =$random_keyへのリンクとして公開されているrandom_keyの値を含む電子メールがユーザーに送信されます。

ユーザーがverification.phpコントローラーを実行すると、コントローラーはpending_usersテーブルに$random_keyが存在するかどうかを確認します。見つかった場合は、レコードを削除し、usersテーブルのフラグを変更します(たとえば、active_account = true)。見つからない場合は、エラーがユーザーに返送されます。

これがお役に立てば幸いです、乾杯

于 2012-06-19T11:03:37.373 に答える
0

あなたが求めていることは不可能です。pkzipやrarのようなプログラムを書いている企業が喜んで殺すのは聖杯です。任意のファイル(数ギガのデータ)をわずか32バイトに圧縮できると想像してください。;)

とにかく、あなたがやろうとしていることは以前に行われたことがあります。電子メールとともにuuidをデータベースに保存する。quidはユーザーにメールで送信され、ユーザーはフォームに入力できます。次に、対応するレコードを見つけるためのデータベースの単純なクエリです。

于 2012-06-19T11:03:44.333 に答える