38 lines
1.2 KiB
Java
38 lines
1.2 KiB
Java
package fr.xephi.authme.security.crypts;
|
|
|
|
import fr.xephi.authme.security.crypts.description.HasSalt;
|
|
import fr.xephi.authme.security.crypts.description.Recommendation;
|
|
import fr.xephi.authme.security.crypts.description.SaltType;
|
|
import fr.xephi.authme.security.crypts.description.Usage;
|
|
import fr.xephi.authme.settings.Settings;
|
|
import fr.xephi.authme.settings.properties.SecuritySettings;
|
|
import fr.xephi.authme.util.RandomStringUtils;
|
|
|
|
import javax.inject.Inject;
|
|
|
|
import static fr.xephi.authme.security.HashUtils.md5;
|
|
|
|
@Recommendation(Usage.ACCEPTABLE) // presuming that length is something sensible (>= 8)
|
|
@HasSalt(value = SaltType.TEXT) // length defined by the doubleMd5SaltLength setting
|
|
public class Salted2Md5 extends SeparateSaltMethod {
|
|
|
|
private final int saltLength;
|
|
|
|
@Inject
|
|
public Salted2Md5(Settings settings) {
|
|
saltLength = settings.getProperty(SecuritySettings.DOUBLE_MD5_SALT_LENGTH);
|
|
}
|
|
|
|
@Override
|
|
public String computeHash(String password, String salt, String name) {
|
|
return md5(md5(password) + salt);
|
|
}
|
|
|
|
@Override
|
|
public String generateSalt() {
|
|
return RandomStringUtils.generateHex(saltLength);
|
|
}
|
|
|
|
|
|
}
|