(May 28, 2021 02:40 PM)Lilith Wrote: I was using KeePassXC's password generator. The which it shows the entropy"†‡Ž‰Šv(Ť" to be 26.01.
![[Image: utJRPHo.png]](https://i.imgur.com/utJRPHo.png)
Additionally, using Kaspersky's Password Checker, the password you provided would take about 14 days to crack. The initial password I mentioned, "*"8rLÄ_;{@" would take 4 years, and "syjfxykMTt2h" would take 4 centuries. BitWarden has the passwords at 3 hours, 12 days, and 3 years respectively.
Both of those sites actually use same library to check password and it's called Zxcvbn.js.
Proof here but you can look it up yourself. As far as I've seen in it's source code it doesn't support full unicode which is why "qrhdcoig" has same entropy as "qrhdcoi1" and as "†‡Ž‰Šv(Ť". The way this library works is that it has multiple matchers but considering these passwords aren't going to be in dictionary I'll focus on brute force part.
If you take a look at this java implementation
HERE you will see that is has a cardinality (estimation of character pool size) to be only 100 while unicode supports over 140k characters. That was java and I used that implementation to get basic insight in architecture but these websites use javascript so I looked into those as well and I found that cardinality is hardcoded at 10
HERE. It's used
BELOW and as you can see again, it doesn't factor in that character poolsize is 140k.
If we take that Entropy formula is E = L
log2( R) where R is size of the pool of unique characters from which we build the password and
L is password length, i.e., the number of characters in the password. (Formula copied from here) we can calculate entropy of "†‡Ž‰Šv(Ť" to be E = 8 log2(140k) = 136.760538413
Google Link
My calculation is correct under assumption that whole unicode character pool is usable and no two characters are treated as same. I have not checked Veracrypt's source code but I'm confident those assumptions are true.