
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