0

クライアントのURL短縮サービスを作成しようとしています。私は今、まともなアルゴリズムを実行していますが、唯一の問題は、クライアントが別のプロモーションのために同じURLを短縮した場合、同じコードが作成されることです。

それを防ぐために何ができますか?

$hash = sha1($this->data[$this->alias]['us_url']);
$this->data[$this->alias]['shortid'] = base_convert(hexdec($hash), 10, 32);

同じURLに対して複数のショートコードを作成して、異なる方法で追跡できるようにしたいと思います。

4

2 に答える 2

2

パスワードハッシュを作成する場合と同じ手順:ソルトを使用します。

$hash = sha1($randomly_generated_salt . $my_url);

したがって、同じ入力文字列は異なるハッシュを作成します。塩は、十分なエントロピーを提供するために適切な長さを持っている必要があります。

(ただし、sha1を使用してパスワードをハッシュすることはありません!)

于 2012-08-21T18:11:46.643 に答える
0

カスタムURLを指定する可能性を追加します。擬似コードの場合:

if(isset($customUrl) && isUniqueLabel($customUrl)) {
    createCustomUrl()
} else {
   createUsualUrl()
}

カスタムURLを指定すると、クライアントはURLを手動で定義する可能性があり(is.gdや他の多くのサービスが行っているように)、これによりカスタマイズの可能性が高まります。

于 2012-08-21T18:15:23.193 に答える