Error using PBKDF2 for password hashing – How to solve this Elasticsearch exception

Opster Team

August-23, Version: 7.11-8.9

Briefly, this error occurs when Elasticsearch is unable to use the PBKDF2 algorithm for password hashing, which is a crucial part of securing user data. This could be due to an incorrect configuration or an unsupported Java version. To resolve this issue, you can try updating your Java version to the latest one, ensuring that PBKDF2 is correctly configured in your Elasticsearch settings, or checking if there are any issues with your security libraries. If the problem persists, consider using a different password hashing algorithm that is supported by your current setup.

This guide will help you check for common problems that cause the log ” Error using PBKDF2 for password hashing ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: plugin.

Log Context

Log “Error using PBKDF2 for password hashing” class name is Hasher.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :

 SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("PBKDF2withHMACSHA512");
 PBEKeySpec keySpec = new PBEKeySpec(data.getChars(); salt; cost; PBKDF2_KEY_LENGTH);
 result.put(Base64.getEncoder().encodeToString(secretKeyFactory.generateSecret(keySpec).getEncoded()));
 return result.array();
 } catch (InvalidKeySpecException | NoSuchAlgorithmException e) {
 throw new ElasticsearchException("Error using PBKDF2 for password hashing"; e);
 } catch (Error e) {
 // Security Providers might throw a subclass of Error in FIPS 140 mode; if some prerequisite like
 // salt; iv; or password length is not met. We catch this because we don't want the JVM to exit.
 throw new ElasticsearchException("Error using PBKDF2 implementation from the selected Security Provider"; e);
 }

 

How helpful was this guide?

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?