3

アルゴリズムを使用して、長さが150〜250文字から最大12文字になるURLを短縮/暗号化する可能性を検討しています。最初はそれが可能かどうか疑問に思っていますが、StackOverflowの優れた精神を活用したかったのです:)

アルゴリズムは、従来のasp、sql、c#、vb、foxpro、またはその他の言語で記述できるものでなければなりません。

データベース中心のアプローチがなくてもそれは可能ですか?

ここで読んでいたのは、CFBモードのAESはストリーム暗号を実行し、出力の長さは入力の長さと同じになるということです。それをさらに短くする方法はありますか?

4

4 に答える 4

4

答えは、いつものように、「場合による」です。大量のデータの「情報内容」について語る数学的理論があります。データが元々次のような文字列の場合:

lleAgByD2rREjzqj85g68207NsjspdINfPRNvU9udgWw7y4qXh0EQLSy0yEi2

文字列が次のようになっている場合よりも、情報の内容ははるかに大きくなります。

one zero one one zero one zero zero one zero one one zero one

ストリングは実際には同じ長さですが。圧縮を使用すると、同じ意味を表現するために必要なビット数を減らすことができますが、それはある程度までです。その点は、元のメッセージの情報内容によって異なります。

あなたの 150 から 250 文字の文字列は情報内容がほとんどないため、12 文字まで効果的に圧縮できるとは思えません。長いデータをデータベースに保存し、各データ項目に短い「キー」を割り当てる必要がある場合があります。

さらに読むには、情報理論に関するウィキペディアの記事から始めてください。

于 2010-08-25T19:36:32.967 に答える
1

申し訳ありませんが、その方法はありません。この場合、短縮とは固有の情報を失うことを意味します。文字列ごとに一意のキー(ハッシュ)を生成できるかもしれませんが、辞書(静的情報)が提供されていない限り、データを解凍するのに役立ちません。

たとえば、ZIPまたはRARがどのように機能しているかを確認します

于 2010-08-31T11:38:34.233 に答える
1

あなたの目標は主に短縮することですか、それとも暗号化することですか? おそらく、既知の文字セットの URL を劇的に格納するのに十分な圧縮アルゴリズムを特殊化できますが、暗号化の目的には効果的ではありません。指定されたレベルの圧縮を達成するために暗号学的に健全な暗号化アルゴリズムを取得できるとは思えません。スキームに関連付けられる可能性のある許容されるキーの長さについて議論していないことは言うまでもありません。

于 2010-08-25T19:36:58.300 に答える
1

URLの長さを短くするだけなのか、短縮されたURLを何かに使用するのか(tinyurlのように)については言及していません。それはあなたの意図ですか?その場合は、URL のハッシュを作成し、そのハッシュを内部で使用して実際の URL にマップできます。次に、短い URL の選択は、ハッシュ アルゴリズムによって異なります。意図に基づいて、返信で提案されたオプションの 1 つを選択できます。

于 2010-08-25T19:51:34.710 に答える