summaryrefslogtreecommitdiffhomepage
path: root/source/hash.d
blob: 5a3028e342fdaf0c02e63de62959d18c55b674e5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
module brpaste.hash;

pure string hash(T)(T data) {
    import std.base64;
    import std.digest.murmurhash;
    auto hash = digest!(MurmurHash3!32)(data);
    return Base64URLNoPadding.encode(hash);
}

pure string hash(T : string)(T data) {
    import std.string;
    return hash(data.representation);
}

unittest {
    immutable(ubyte)[] a = [ 'b', 'r', 'p', 'a', 's', 't', 'e' ];
    string s = "brpaste";
    assert(a.hash == s.hash);
}