This contest is over.
Due to the nature of cops-and-robbers challenges, the cops challenge becomes a lot easier when the interest in the associated robbers challenge has diminished. Therefore, while you can still post hash functions, your answer will not get accepted or form part of the leaderboard.
This challenge is a search for the shortest implementation of a hash function that is collision resistant, i.e., it should be infeasible to find two different messages with the same hash.
As a cop, you try to invent and implement a hash function finding the best compromise between code size and collision resistance. Use too many bytes and another cop will outgolf you!
As a robber, you try to foil the cops' attempts by cracking their functions, proving that they are unsuitable. This will force them to use more bytes to strengthen their algorithms!
Cops challenge
Task
Implement a cryptographic hash function H : I -> O of your choice, where I is the set of all non-negative integers below 2230 and O is the set of all non-negative integers below 2128.
You can either implement H as an actual function that accepts and returns a single integer, a string representation of an integer or an array of integers or a full program that reads from STDIN and prints to STDOUT in base 10 or 16.
Scoring
H that it has to resist the robbers challenge defined below.
If a robber defeats your submission in the first 168 hours after posting it, it is considered cracked.
The implementation of H should be as short as possible. The shortest uncracked submission will be the winner of the cops challenge.
Additional rules
If you implement H as a function, please provide a wrapper to execute the function from within a program that behaves as explained above.
Please provide at least three test vectors for your program or wrapper (example inputs and their corresponding outputs).
H can be your novel design (preferred) or a well-known algorithm, as long as you implement it yourself. It is forbidden to use any kind in-built hash function, compression function, cipher, PRNG, etc.
Any built-in commonly used to implement hashing functions (e.g., base conversion) is fair game.
The output of your program or function must be deterministic.
There should be a free (as in beer) compiler/interpreter that can be run on a x86 or x64 platform or from within a web browser.
Your program or function should be reasonably efficient and has to hash any message in I below 2219 in less than a second.
For edge cases, the (wall) time taken on my machine (Intel Core i7-3770, 16 GiB of RAM) will be decisive.
Given the nature of this challenge, it is forbidden to change the code of your answer in any way, whether it alters the output or not.
If your submission has been cracked (or even if it hasn't), you can post an additional answer.
If your answer is invalid (e.g., it doesn't comply with the I/O specification), please delete it.
Example
Python 2.7, 22 bytes
def H(M): return M%17
Wrapper
print H(int(input()))
Robbers challenge
Task
Crack any of the cops' submissions by posting the following in the robbers' thread: two messages M and N in I such that H(M) = H(N) and M ≠ N.
Scoring
Cracking each cop submissions gains you one point. The robber with the most points wins.
In the case of a tie, the tied robber that cracked the longest submission wins.
Additional rules
Every cop submission can only be cracked once.
If a cop submission relies on implementation-defined or undefined behavior, you only have to find a crack that works (verifiably) on your machine.
Each crack belongs to a separate answer in the robbers' thread.
Posting an invalid cracking attempt bans you from cracking that particular submission for 30 minutes.
You may not crack your own submission.
Example
Python 2.7, 22 bytes by user8675309
1
and
18
Leaderboard
Safe submissions
Uncracked submissions
You can use this Stack Snippet to get a list of not yet cracked answers.
function g(p){$.getJSON('//api.stackexchange.com/2.2/questions/51068/answers?page='+p+'&pagesize=100&order=desc&sort=creation&site=codegolf&filter=!.Fjs-H6J36w0DtV5A_ZMzR7bRqt1e',function(s){s.items.map(function(a){var h=$('<div/>').html(a.body).children().first().text();if(!/cracked/i.test(h)&&(typeof a.comments=='undefined'||a.comments.filter(function(b){var c=$('<div/>').html(b.body);return /^cracked/i.test(c.text())||c.find('a').filter(function(){return /cracked/i.test($(this).text())}).length>0}).length==0)){var m=/^\s*((?:[^,(\s]|\s+[^-,(\s])+)\s*(?:[,(]|\s-).*?([0-9]+)/.exec(h);$('<tr/>').append($('<td/>').append($('<a/>').text(m?m[1]:h).attr('href',a.link)),$('<td class="score"/>').text(m?m[2]:'?'),$('<td/>').append($('<a/>').text(a.owner.display_name).attr('href',a.owner.link))).appendTo('#listcontent');}});if(s.length==100)g(p+1);});}g(1);
table th, table td {padding: 5px} th {text-align: left} .score {text-align: right} table a {display:block}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><table><tr><th>Language</th><th class="score">Length</th><th>User</th></tr><tbody id="listcontent"></tbody></table>