2

ページに textarea 要素があり、作成した保存ボタンをクリックすると、そのコンテンツがデータベースに保存されます。テキストエリアにあった情報を含むレコードを保存したテーブル行の一意の ID (主キー) を使用して、「MySite.com/laHquq」のようなハッシュ ID を持つ短い URL を作成したいと考えていました。 .hashids.org/「数値から短いハッシュを生成します (YouTube や Bitly など)」。テキストエリアからの情報を含むレコードでテーブル行の一意の主キーを難読化するために使用したいと考えています。

アドレスバーのドメイン名の末尾にあるスラッシュの後に、作成されたハッシュ ID (主キーを難読化する) を配置するスクリプトを作成して、アドレスバーに「MySite.com/laHquq」が表示されるようにします。 "情報がデータベースに保存された後。これは単に、テキストエリアに保存された情報が、スラッシュの後のハッシュ ID を使用してサイトにアクセスすることで再び表示されることを示すために行われます。

また、ページが読み込まれるたびにアドレスバーから URL を取得し、スラッシュの後にハッシュ ID をチェックし、ハッシュ ID を使用してデータベースから適切な情報を見つけて表示する自己呼び出し機能を備えたスクリプトも作成します。ページのテキストエリアにあります。hashids: http://www.hashids.org/を使用すると、ハッシュの衝突を防ぐことができるかどうか疑問に思いました。

4

3 に答える 3

4

ドキュメントから、hashid との衝突に直面することはないようです。それはハッシュではないからです。それは暗号であり、暗号化アルゴリズムです。非常に弱いものですが、ハッシュのように見える ID を生成するには十分です。

重要な手がかりの 1 つは、decrypt関数があることです。同じハッシュを生成する複数の値 (通常は無限) があるため、衝突する可能性のある実際のハッシュを単一の値に復号化することはできません。

いくつかの点で、base64 エンコーディングに似ていますが、文字セットが URL フレンドリになるように選択されています (no+または/)。

于 2013-09-26T03:50:47.247 に答える