Java FNV Hash FNVHash(byte[] data)

Here you can find the source of FNVHash(byte[] data)

Description

FNV Hash

License

Apache License

Declaration

public static int FNVHash(byte[] data) 

Method Source Code

//package com.java2s;
/**// w w w .  j av  a2 s  .co  m
 * Copyright 2014 Duan Bingnan
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 *   
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

public class Main {
    static int M_MASK = 0x8765fed1;
    static int M_SHIFT = 0;

    public static int FNVHash(byte[] data) {
        int hash = (int) 2166136261L;
        for (byte b : data)
            hash = (hash * 16777619) ^ b;
        if (M_SHIFT == 0)
            return hash;
        return (hash ^ (hash >> M_SHIFT)) & M_MASK;
    }
}

Related

  1. FNVHash(byte[] data)
  2. fnvHash(int[] p)
  3. FNVHash(String str)
  4. FNVHash1(byte[] data)