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

org.seedstack.seed.crypto.HashingService Maven / Gradle / Ivy

The newest version!
/**
 * Copyright (c) 2013-2016, The SeedStack authors 
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */
/*
 * Creation : 27 févr. 2015
 */
package org.seedstack.seed.crypto;

/**
 * Support for creating a hash and validating passwords.
 * When creating a hash from a string or char[], a random salt will be generated and
 * given with the hash through a {@link Hash} object.
 *
 * @author [email protected]
 */
public interface HashingService {

	/**
	 * Creates a hash from a String
	 * @param toHash the String to hash
	 * @return a {@link Hash} giving the hash of the String and the Salt used
	 */
    Hash createHash(String toHash);

	/**
	 * Creates a hash from a char[]. This method can be convenient as passwords are often represented in java as char[]
	 * @param toHash the char[] to hash
	 * @return a {@link Hash} giving the hash of the char[] and the Salt used
	 */
    Hash createHash(char[] toHash);

    /**
     * Validates a password using a hash.
     * 
     * @param password the password to check
     * @param correctHash the hash of the valid password
     * @return true if the password is correct, false if not
     */
    boolean validatePassword(char[] password, Hash correctHash);

    /**
     * Validates a password using a hash.
     * 
     * @param password the password to check
     * @param correctHash the hash of the valid password
     * @return true if the password is correct, false if not
     */
    boolean validatePassword(String password, Hash correctHash);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy