2012-01-12 4 views
1

基本的に私は自分のウェブサイトに登録したときに送信される電子メールを書いており、GETに割り当てられた文字列を必要とするアクティベーションリンクを持っています変数。長い英数字の文字列を出力するシンプルな双方向暗号化

人がリンクをクリックすると、サイト上のページに移動し、そこで文字列が解読され、データベース内で一意のものと照合されます。その後、アカウントが有効になります。

私はCakePHPでこれをやっているので、もし何らかの関数が組み込まれていればそれが望ましいでしょう。

私はたくさんのオプションを試しましたが、それらのほとんどは実際には短く、本当に奇妙で、GET変数を混乱させる文字があります。

出力は、好ましくは約20文字で、文字と数字だけで構成する必要があります。

答えて

3

ランダムでユニークな文字列を使用してください。それを暗号化または解読する必要はなく、一意で、長くてランダムである必要があります。これは単純に不透明なトークンとして知られています。何の意味もなく、ただ1人のユーザーしか持っていないユニークなものです。 UUIDsはすばらしいフィット感です。

do { 
    $token = str_replace('-', '', String::uuid()); 
} while (!$this->User->isUnique(array('token' => $token))); 
+0

驚くばかりです。ありがとう! – LukeWaggoner

関連する問題