1.8.2 - (2024-05-01)
- Multi thread algorithms use daemon threads in order to not block the application shutdown if there is no explicit
System.exit()
(#151) - Password4j works even when there is no access to
psw4j.properties
file due to restrictive security policies (#153)
1.8.1 - (2024-03-08)
Argon2Function#internalHash(...)
used a double conversion frombyte[]
toString
and back tobyte[]
that created inconsistencies in `Hash#salt (#143)
Hash#Hash(HashingFunction, String, byte[], String)
marked deprecated
1.8.0 - (2024-03-03)
- Balloon Hashing implementation (#131)
- Parallelism is achieved by an
ExecutorService
instantiated during object creation instead of during the hashing process
- Banner is disabled by default
1.7.3 - (2023-09-14)
- Wrong hashes when the password contains non ISO 8859-1 characters (#126)
1.7.2 - (2023-08-20)
- Suppressed warning for usage of
java.security.AccessController
. This is how the java development team fixed the problem for the moment (#119) - In some custom JDK implementations
java.security.Provider#getServices()
can returnnull
instead of emptyjava.security.Provider.Service[]
(#120)
1.7.1 - (2023-06-02)
- Bcrypt used negative rounds when cost factor = 31 (#114)
1.7.0 - (2023-02-18)
- APIs now accepts
byte[]
arguments (#99) .forceUpdate()
forces Password4j to recalculate a new hash even if the parameters didn't change (#102)- configurable salt length with property
global.salt.length
when using#addRandomSalt()
(#97)
.andUpdate()
no more recalculations of the hash if the algorithm, salt or pepper changed from the hash found inPassword.check()
(#102)
- Inconsistency between public and internal APIs for Argon2 (#93)
1.6.3 - (2022-12-08)
- Inconsistency of Argon2 with some kind of salts generated from external libraries #92
1.6.2 - (2022-10-20)
- Application banner (#83).
- Typo for issue #80
- Dependencies to Apache Commons Text, which had been vulnerable to arbitrary code execution in the past (#84).
1.6.1 - (2022-10-07)
- Algorithms' default values are aligned to OWASP recommendation (#80)
1.6.0 - (2022-06-17)
BCryptFunction
,SCryptFunction
,#withBCrypt()
,#withSCrypt()
,getBCryptInstance()
,getSCryptInstance()
toBcryptFunction
,ScryptFunction
,#withBcrypt()
,#withScrypt()
,getBcryptInstance()
,getScryptInstance()
(#36).
- Scrypt never prepends
$s0
to the result (#64).
1.5.4 - (2021-11-19)
- Removed
slf4j-nop
which can cause issues if not excluded from the dependency tree (#46)
1.5.3 - (2021-04-14)
1.5.2 - (2021-02-21)
- Raised the compatibility with Android API level from 26+ (Android 8.0) to 21+ (Android 5.0).
SystemChecker
's benchmark tools returns a prototype of the function and the real elapsed time (#23).
- Argon2 was not using the given pepper with
Password.check(String, Hash)
. - Salt was converted from
String
tobyte[]
too many times. (#31).
- Dependency with Apache Commons Text.
1.5.1 - (2021-02-05)
Hash
stores the byte array containing the calculated hash without algorithm's parameters and salt (#26).
- Scrypt accepts dynamic key length (#24).
- Improved
toString()
methods' readability.
1.5.0 - (2021-02-02)
- Argon2 support.
- Enums
BCrypt
andHmac
are moved fromcom.password4j
tocom.password4j.types
.
- Some typos along the code.
1.4.0 - (2020-11-15)
- CHFs like MD5, SHA-1, SHA-2 and SHA-3 in order to increase compatibility with legacy systems.
PBKDF2Function.getAlgorithm()
returns aString
instead of anHmac
enum. This makePBKDF2Function.toString()
andCompressedPBKDF2Function.toString()
more readable.SystemChecker.isPBKDF2Supported()
accepts aString
instead of anHmac
enum.
- Some typos along the code.
1.3.2 - (2020-09-09)
- The location of the configuration file is now customizable (#5).
SecureString.toString()
now hides the length of the string (#6).
1.3.1 - (2020-03-25)
toString()
of someHashingFunction
produced non-unique output (#3).- added missing getters for some
HashingFunction
s (#4).
1.3.0 - (2020-03-19)
- Capability of updating the hash (re-hash) with a new configuration just after the verification process.
HashBuilder
andHashChecker
are less extendable because there are more maintainability issues than effective advantages- Pepper can be provided either with
SecureString
orString
.
Password.hash()
andPassword.check()
methods that accepts a customHashBuilder
or a customHashChecker
.
1.2.1 - (2020-03-17)
- Constant time equality in
SecureString
.
- Enum
WithHmac
renamed toHmac
.
1.2.0 - (2020-03-15)
- This CHANGELOG.md file.
- Plain text passwords can be provided either with
SecureString
orString
.
1.1.0 - (2020-03-14)
- Configurable delimiter for
CompressedPBKDF2Function
(before was$
).
Hash.check()
method becausePassword.check()
should be the only way to verify passwords.
- Values from
psw4j.properties
are not properly cached. - Typos in README.md
- Typos in
SystemChecker
's methods' signature.
1.0.2 - (2020-03-12)
SystemChecker.java
has no more amain
method but must be called from end user's code. Removed UI and execution from Maven profile.
1.0.1 - (2020-03-11)
- POM structure and dependencies.
1.0.0 - (2020-03-11)
- API are more readable for end users.