title: What is the algorithm used by the ORA_HASH function?
body: <p>I've come across some code in the application I'm working on that makes a database call merely to call the <a href="https://docs.oracle.com/database/121/SQLRF/functions136.htm#SQLRF06313" rel="noreferrer"><code>ORA_HASH</code></a> function (<a href="https://docs.oracle.com/database/121/SQLRF/functions136.htm#SQLRF06313" rel="noreferrer">documentation</a>) on a UUID string.  The reason it's doing this is that it needs the value to make a service call to another system that appears to use <code>ORA_HASH</code> for partitioning.</p>
  
  <p>I would like to know the algorithm <code>ORA_HASH</code> uses so that I can re-implement it to make a similar service call for an application that won't have access to a real database, let alone Oracle.  I've only been able to find what amounts to Oracle API documentation so far.</p>
  
  <p><strong>Just to be super clear:</strong> I need to clone <code>ORA_HASH</code> because that's what another system that's outside of my control uses, and I need to integrate with that system.  Yes, it would nice if could use a <em>really</em> standard algorithm, like MD5, but I can't, unless that's what <code>ORA_HASH</code> is under the covers.  </p>
  
  <p>Answers or comments that propose the use of a hash algorithm besides <code>ORA_HASH</code> are not helpful.  This question is specifically about <code>ORA_HASH</code>, not hashing or partitioning in general.</p>