0

URL に挿入したい非常に長い (~70,000 文字) 文字列があります。ブラウザーにバックフォワードを実装する必要があるため、URL が変更されると、アプリは反応して状態を変更します。

これは、文字列からハッシュ コードを生成するために使用する関数です。

String.prototype.hashCode = function () {
            var hash = 0, i, char;
            if (this.length == 0) return hash;
            var l = this.length;
            for (i = 0; i < l; i++) {
                char = this.charCodeAt(i);
                hash = ((hash << 5) - hash) + char;
                hash |= 0; // Convert to 32bit integer
            }
            return hash;
        };

しかし、どうすればハッシュから文字列を取り戻すことができますか?

編集:このような長い URL を圧縮する他の方法はありますか?

4

3 に答える 3

4

できません。ハッシュは一方向関数です。560,000 ビットを 32 ビットに変換して戻すことはできません。

于 2013-08-26T12:39:35.857 に答える
3

マジックで!(無理だと言って)

于 2013-08-26T12:38:28.363 に答える
0

ユースケースによっては、URL 短縮サービスを使用して URL を圧縮した可能性があります。この例を見てください: https://twitter.com/peterjaric/status/336941762838945792 (tinyurl を使用して長いデータ URI を圧縮しました)。

tinyurl ページへの直接リンク: http://tinyurl.com/peterjaric-page1

于 2014-02-27T09:45:19.913 に答える