title: Reverse multiplication of 32-bit numbers
body: <p>I have two large signed 32-bit numbers (java ints) being multiplied together such that they'll overflow. Actually, I have one of the numbers, and the result. Can I determine what the other operand was?</p>
  
  <p><code>knownResult = unknownOperand * knownOperand;</code></p>
  
  <p>Why? I have a string and a suffix being hashed with fnv1a. I know the resulting hash and the suffix, I want to see how easy it is to determine the hash of the original string.</p>
  
  <p>This is the core of fnv1a:</p>
  
  <pre><code>hash ^= byte
  hash *= PRIME
  </code></pre>