package fr.xephi.authme.security.crypts; import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import fr.xephi.authme.AuthMe; public class WBB3 implements EncryptionMethod { @Override public String getHash(String password, String salt) throws NoSuchAlgorithmException { return getSHA1(salt.concat(getSHA1(salt.concat(getSHA1(password))))); } @Override public boolean comparePassword(String hash, String password, String playerName) throws NoSuchAlgorithmException { String salt = AuthMe.getInstance().database.getAuth(playerName).getSalt(); return hash.equals(getHash(password, salt)); } private static String getSHA1(String message) throws NoSuchAlgorithmException { MessageDigest sha1 = MessageDigest.getInstance("SHA1"); sha1.reset(); sha1.update(message.getBytes()); byte[] digest = sha1.digest(); return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,digest)); } }