I'm not sure that you'll find that information published in public. You might ask Oracle (I'm not sure they'll tell it either). This algorithm is considered to be confidential, so - even if they tell you, they'd have to kill you.
I don't want to crack it. I need to implement the same algorithm in Java. Java hash function doesn't return the same hash code for the same input and that's the problem I have.
I don't get it why is it confidential, for example Java hash function calculates hash for String object as
s*31^(n-1) + s*31^(n-2) + ... + s[n-1]
I don't know much about PL/SQL, so let me ask other question, is it possible to tune up max_bucket and/or seed_value parameters of ora_hash function to get the same hash code as Java hash function returns? Probably it is not possible because algorithms used to calculate hash code are different.