#C, 87 bytes [[cracked](http://codegolf.stackexchange.com/a/51174/11006)]

This is the complete program; no wrapper required. Accepts binary input via stdin, and outputs a hexadecimal hash to stdout.

<!-- language-all: lang-c -->

    c;p;q;main(){while((c=getchar())+1)p=p*'foo+'+q+c,q=q*'bar/'+p;printf("%08x%08x",p,q);}

This only calculates a 64-bit hash, so I'm taking a bit of a gamble here.

In case anyone's wondering, the two constants `'foo+'` and `'bar/'` are the prime numbers 1718578987 and 1650553391.

---

###Examples:

Ignores leading zeroes:

    echo -ne '\x00\x00\x00\x00' |./hash
    0000000000000000

Single-byte inputs:

    echo -ne '\x01' |./hash
    0000000100000001
    echo -ne '\xff' |./hash
    000000ff000000ff

Multi-byte inputs:

    echo -ne '\x01\x01' |./hash
    666f6f2dc8d0e15c
    echo -ne 'Hello, World' |./hash
    04f1a7412b17b86c