JBCrypt Параметр увеличения длины соли
Я пытаюсь использовать JBCrypt для системы входа в систему для приложения Java. Веб-приложение использует встроенную функцию password_hash с параметрами по умолчанию. Похоже, что COST установлен на 10, а длина соли теперь больше, чем стандарт 16, реализованный в классе JBCrypt. Когда я выполняю тестовый код ниже, JBCrypt выбрасывает недопустимую длину соли выше 16 цифр. Поскольку это ново для меня и я надеялся, что смогу справиться с этим, не касаясь этого класса, я относительно потерян и не могу найти надлежащую документацию, так как этот проект кажется устаревшим. Любая помощь / документация, на которую я могу указать для модификации этого класса или альтернативного метода для Java, будет принята с благодарностью. В этом примере используется длина соли 22.
String hash_php = "$2y$10$ss9kwE8iSIqcJOAPhZR0Y.2XdYXJTFJ1/wGq6SUv74vULE7uhKUIO".replaceFirst("2y", "2a");
System.out.println("hash php " + hash_php);
//String a_hash = BCrypt.hashpw("123456", BCrypt.gensalt());
//System.out.println("Encrypt " + a_hash);
if (BCrypt.checkpw("123456", hash_php)) {
System.out.println("It matches");
} else {
System.out.println("It does not match");
}
Класс BCrypt по умолчанию (связанный с ограничением количества символов): класс Bcrypt
Ошибка происходит:
if (salt.length != BCRYPT_SALT_LEN)
throw new IllegalArgumentException ("Bad salt length");