All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.solinger.sdbm.Hash Maven / Gradle / Ivy

The newest version!
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 *
 *   Copyright (C) 2010-2014 Christian Bockermann 
 *    
 *   This file is part of the jwall.org apache-config library. The apache-config library is
 *   a parsing library to handle Apache HTTPD configuration files.
 *
 *   More information and documentation for the jwall-tools can be found at
 *   
 *                      http://www.jwall.org/apache-config
 *   
 *   This program is free software; you can redistribute it and/or modify it under
 *   the terms of the GNU General Public License as published by the Free Software
 *   Foundation; either version 3 of the License, or (at your option) any later version.
 *   
 *   This program is distributed in the hope that it will be useful, but WITHOUT ANY
 *   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 *   FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
 * 
 *   You should have received a copy of the GNU General Public License along with this 
 *   program; if not, see .
 *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
package org.solinger.sdbm;

/**
 * Java rewrite of sdbm.
 * sdbm - ndbm work-alike hashed database library
 * based on Per-Aake Larson's Dynamic Hashing algorithms. BIT 18 (1978).
 * original author: [email protected]
 * status: public domain. keep it that way.
 * @author Justin Chapweske ([email protected])
 * @version .01 06/06/98
 * hashing routine
 */
public class Hash {

    /**
     * polynomial conversion ignoring overflows
     * [this seems to work remarkably well, in fact better
     * then the ndbm hash function. Replace at your own risk]
     * use: 65599	nice.
     *      65587   even better.
     */
    public static final int hash(String str) {
        return hash(str.getBytes());
    }

    public static final int hash(byte[] b){
        int n = 0;
        int len = b.length;

        for (int i=0;i




© 2015 - 2024 Weber Informatics LLC | Privacy Policy