2013-08-26 45 views
0

我有一个非常长的(〜70,000个字符)字符串,我想要插入到URL中。我需要在浏览器中实现后退,所以当URL更改时,我的应用程序将作出反应并更改其状态。我怎样才能从字符串获得散列,然后从哈希返回的字符串在javascript中

这是我用它来生成字符串中的散列码功能:

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

你不能。哈希是一个单向函数。无法将560,000位转换为32位并返回。

3

随着魔术! (说这是不可能的)

+0

是否有任何其他的方式来压缩这么长的网址? –

+0

您可以通过POST传输数据吗?然后,查询字符串将不可见。 – moritzpflaum

+0

我不想传输数据。我需要在url中存储应用程序状态。所以,当我按下后退我的应用程序将作出反应,我也想传递网址到第三方,所以当他们复制粘贴它时,应用程序将保持它的状态 –

相关问题