Java 类org.apache.commons.codec.digest.Sha2Crypt 实例源码
项目:metka
文件:APIRepositoryImpl.java
@Override
public Pair<ReturnResult, APIUserEntry> newAPIUser(NewAPIUserRequest request) {
if(StringUtils.isBlank(request.getName()) || StringUtils.isBlank(request.getRole())) {
return new ImmutablePair<>(ReturnResult.PARAMETERS_MISSING, null);
}
APIUserEntity entity = new APIUserEntity();
entity.setLastAccess(new LocalDateTime());
entity.setName(request.getName());
entity.setCreatedBy(AuthenticationUtil.getUserName());
entity.setRole(request.getRole());
// Let's create the secret for signatures. This is going to be a bit more complex than public key
String secret = (new LocalDateTime()).toString()+entity.getName()+entity.getCreatedBy()+entity.getRole();
String secCrypt = Sha2Crypt.sha512Crypt(secret.getBytes(), "$6$0$");
secret = new String(Base64.encodeBase64(secCrypt.substring(5).getBytes(), false, true));
entity.setSecret(secret);
em.persist(entity);
return new ImmutablePair<>(ReturnResult.OPERATION_SUCCESSFUL, formAPIUserEntry(entity));
}
项目:sftpserver
文件:PasswordEncrypt.java
public PasswordEncrypt(final String key) {
final byte[] keyBytes = key.getBytes(US_ASCII);
this.md5 = Md5Crypt.md5Crypt(keyBytes.clone());
this.apr1 = Md5Crypt.apr1Crypt(keyBytes.clone());
this.sha256 = Sha2Crypt.sha256Crypt(keyBytes.clone());
this.sha512 = Sha2Crypt.sha512Crypt(keyBytes.clone());
Arrays.fill(keyBytes, (byte) 0);
}
项目:sftpserver
文件:PasswordEncrypt.java
public static boolean checkPassword(final String crypted, final String key) {
String crypted2 = null;
if (crypted == null)
return false;
if (crypted.length() < 24)
return false;
if (crypted.charAt(0) != '$')
return false;
final int offset2ndDolar = crypted.indexOf('$', 1);
if (offset2ndDolar < 0)
return false;
final int offset3ndDolar = crypted.indexOf('$', offset2ndDolar + 1);
if (offset3ndDolar < 0)
return false;
final String salt = crypted.substring(0, offset3ndDolar + 1);
final byte[] keyBytes = key.getBytes(US_ASCII);
if (crypted.startsWith("$1$")) { // MD5
crypted2 = Md5Crypt.md5Crypt(keyBytes.clone(), salt);
} else if (crypted.startsWith("$apr1$")) { // APR1
crypted2 = Md5Crypt.apr1Crypt(keyBytes.clone(), salt);
} else if (crypted.startsWith("$5$")) { // SHA2-256
crypted2 = Sha2Crypt.sha256Crypt(keyBytes.clone(), salt);
} else if (crypted.startsWith("$6$")) { // SHA2-512
crypted2 = Sha2Crypt.sha512Crypt(keyBytes.clone(), salt);
}
Arrays.fill(keyBytes, (byte) 0);
if (crypted2 == null)
return false;
return crypted.equals(crypted2);
}
项目:text_converter
文件:Sha256HashFunction.java
@NonNull
@Override
public String encode(@NonNull String text) {
return Sha2Crypt.sha256Crypt(text.getBytes());
}
项目:text_converter
文件:Sha512HashFunction.java
@NonNull
@Override
public String encode(@NonNull String text) {
return Sha2Crypt.sha512Crypt(text.getBytes());
}