It’s infuriating to create a “strong password” with letters, numbers, upper and lowercase, symbols, and non-repeating text… but it has to be only 8 to 16 characters long.
That’s not a “strong” password, random characters or not.
Is there a limitation that somehow prevents these sites from allowing more than 16 characters?
I’m talking government websites, not just forums. It seems crazy to me.
Guess how many systems ‘with full unicode support’ are broken by using emojis in your username or password…
Which is dumb because passwords should be treated as opaque bytes then salted and hashed. If your code breaks due to invalid unicode, your code is broken.
No. If you’re salting and hashing your passwords, you’re doing it wrong.
We have password specific memory hard functions like argon that you should be using
I’ve always wondered about Unicode normalization and passwords. I don’t know a ton about it, but I think it’s that things like
ö
and be represented as one character for the whole thing or two, one for the umlaut and another foro
. That means that there are at least two sequences of code points that make the same… Glyph? I forget the word. The thing you see on the screen.Anyway, what if you have that
ö
in your password and one browser/keyboard/os/lovecraftian nightmare makes the mark one way and the other does it the other way? They aren’t the same bytes. So they won’t hash the same and you just can’t tell why. Without digging super deep.There are standard ways to normalize the Unicode but I don’t imagine most password systems use them. Maybe it’s some intermediate layer. But I kind of doubt it. Those are complex, evolving standards.
Oh. And that “evolving” thing might make trouble for password systems. Are these standards backwards compatible in the way they’d need to be for a normalization upgrade not to break any passwords?
Oh God, what nightmare have I found?
I’m gonna add a 𓂸 to my password.
Better yet of you include users - there are so many lookalike characters (and the additionally all those diacritics to make more lookalikes) that look the same, so that a human most certainly can’t/won’t tell them apart, but that are completely different codepoints.
I � Unicode!