title: Find Server Seed from Hash Verification Script
body: <p>View this jsfiddle: <a href="https://jsfiddle.net/1L1uqcgv/6/" rel="nofollow noreferrer">https://jsfiddle.net/1L1uqcgv/6/</a></p>
  <pre><code>function refreshTable(){
      var hash = document.getElementById(&quot;gameHash&quot;).value;
      var lastHash = &quot;&quot;;
      var amount = document.getElementById(&quot;gameAmount&quot;).value;
  
      var tableBody = document.getElementById(&quot;tbody&quot;);
      tableBody.innerHTML = &quot;&quot;;
      for(var i=0; i&lt;amount; i++){
      var gameHash = (lastHash!=&quot;&quot;?genGameHash(lastHash):hash);
      var gameCrash = crashPointFromHash((lastHash!=&quot;&quot;?genGameHash(lastHash):hash));
      var clr = gameCrash &gt; 1.97 ? 'green': (gameCrash &lt; 1.97 ? 'red' : 'blue');
      tableBody.innerHTML += &quot;&lt;tr&gt;&lt;td&gt;&quot;+gameHash+&quot;&lt;/td&gt;&lt;td style='background:&quot; + clr + &quot;'&gt;&quot;+gameCrash+&quot;&lt;/td&gt;&lt;/tr&gt;&quot;;
      
      lastHash = gameHash;
      }
  }
  
  
  function divisible(hash, mod) {
  // So ABCDEFGHIJ should be chunked like  AB CDEF GHIJ
  var val = 0;
  
  var o = hash.length % 4;
  for (var i = o &gt; 0 ? o - 4 : 0; i &lt; hash.length; i += 4) {
      val = ((val &lt;&lt; 16) + parseInt(hash.substring(i, i+4), 16)) % mod;
  }
  
  return val === 0;
  }
  
  function genGameHash(serverSeed) {
      return CryptoJS.SHA256(serverSeed).toString()
  };
  
  
  function hmac(key, v) {
      var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);
      return hmacHasher.finalize(v).toString();
  }
  
  function crashPointFromHash(serverSeed) {
  // see: provably fair seeding event
  var hash = hmac(serverSeed, '000000000000000007a9a31ff7f07463d91af6b5454241d5faf282e5e0fe1b3a');
  
  // In 1 of 101 games the game crashes instantly.
  if (divisible(hash, 101))
      return 0;
  
  // Use the most significant 52-bit from the hash to calculate the crash point
  var h = parseInt(hash.slice(0,52/4),16);
  var e = Math.pow(2,52);
  
  return (Math.floor((100 * e - h) / (e - h))/100).toFixed(2);
  };
  </code></pre>
  <p>Is it possible to find the &quot;serverSeed&quot; as shown in lines 31 and 41?
  To find previous games, a hash is entered into the box, showing all previous games. Would serverSeed be used to find these hashes, or does the single hash create all previous hashes?</p>