this post was submitted on 17 May 2025
787 points (96.0% liked)

Mildly Infuriating

39633 readers
432 users here now

Home to all things "Mildly Infuriating" Not infuriating, not enraging. Mildly Infuriating. All posts should reflect that.

I want my day mildly ruined, not completely ruined. Please remember to refrain from reposting old content. If you post a post from reddit it is good practice to include a link and credit the OP. I'm not about stealing content!

It's just good to get something in this website for casual viewing whilst refreshing original content is added overtime.


Rules:

1. Be Respectful


Refrain from using harmful language pertaining to a protected characteristic: e.g. race, gender, sexuality, disability or religion.

Refrain from being argumentative when responding or commenting to posts/replies. Personal attacks are not welcome here.

...


2. No Illegal Content


Content that violates the law. Any post/comment found to be in breach of common law will be removed and given to the authorities if required.

That means: -No promoting violence/threats against any individuals

-No CSA content or Revenge Porn

-No sharing private/personal information (Doxxing)

...


3. No Spam


Posting the same post, no matter the intent is against the rules.

-If you have posted content, please refrain from re-posting said content within this community.

-Do not spam posts with intent to harass, annoy, bully, advertise, scam or harm this community.

-No posting Scams/Advertisements/Phishing Links/IP Grabbers

-No Bots, Bots will be banned from the community.

...


4. No Porn/ExplicitContent


-Do not post explicit content. Lemmy.World is not the instance for NSFW content.

-Do not post Gore or Shock Content.

...


5. No Enciting Harassment,Brigading, Doxxing or Witch Hunts


-Do not Brigade other Communities

-No calls to action against other communities/users within Lemmy or outside of Lemmy.

-No Witch Hunts against users/communities.

-No content that harasses members within or outside of the community.

...


6. NSFW should be behind NSFW tags.


-Content that is NSFW should be behind NSFW tags.

-Content that might be distressing should be kept behind NSFW tags.

...


7. Content should match the theme of this community.


-Content should be Mildly infuriating.

-The Community !actuallyinfuriating has been born so that's where you should post the big stuff.

...


8. Reposting of Reddit content is permitted, try to credit the OC.


-Please consider crediting the OC when reposting content. A name of the user or a link to the original post is sufficient.

...

...


Also check out:

Partnered Communities:

1.Lemmy Review

2.Lemmy Be Wholesome

3.Lemmy Shitpost

4.No Stupid Questions

5.You Should Know

6.Credible Defense


Reach out to LillianVS for inclusion on the sidebar.

All communities included on the sidebar are to be made in compliance with the instance rules.

founded 2 years ago
MODERATORS
 

In password security, the longer the better. With a password manager, using more than 24 characters is simple. Unless, of course, the secure password is not accepted due to its length. (In this case, through STOVE.)

Possibly indicating cleartext storage of a limited field (which is an absolute no-go), or suboptimal or lacking security practices.

you are viewing a single comment's thread
view the rest of the comments
[–] x00z@lemmy.world 5 points 2 days ago (3 children)

The backend should care though. Even if strings can have an unlimited amount of characters, you don't want to go and hash a gigabyte of data. In lower level languages you don't have magic strings either so you might do something like char password[64].

There's many reasons to limit raw password length. Not many good ones to have it as small as 24 (or even 64) though.

[–] surewhynotlem@lemmy.world 13 points 2 days ago (2 children)

There should be a limit. It should be so high that we never hear about it. 1MB for example.

[–] CosmicTurtle0@lemmy.dbzer0.com 5 points 2 days ago (1 children)

Exactly. The tax on hashing the password can't be ignored and if you're doing this enough times it can kill a system. 24 characters is too low. I'd say 100 characters is enough for most use cases. 1024 if you're feeling 1337.

[–] troed@fedia.io 5 points 2 days ago

Sure, but when we talk about the computation then the number of rounds is by far the more important factor compared to password length.

The discussion is about whether 24 characters indicate cleartext though - not whether password lengths should be in the gigabytes.

[–] x00z@lemmy.world 1 points 2 days ago

Seems reasonable.

[–] troed@fedia.io 9 points 2 days ago (1 children)

I agree you might have threat actors looking to DoS your system if there's a publicly exposed REST endpoint accepting gigabytes of data. That has nothing to do with the discussion on password hashing though.

[–] x00z@lemmy.world 2 points 2 days ago (2 children)

The claim was that a limit on passwords implies plaintext storage. It doesn't. There is no such thing as unlimited on computers.

[–] Kissaki@feddit.org 7 points 2 days ago* (last edited 2 days ago) (1 children)

The claim was that a limit on passwords implies plaintext storage.

quoting the post:

Possibly indicating cleartext storage of a limited field (which is an absolute no-go), or

It was not a claim that it certainly is plaintext storage. It was claimed to be a possibility. AND provided an alternative explanation.

Maybe you're more confident than me in good practices and implementations across all services. But I've seen enough to know that's not always the case. It's good to be skeptical on anything related to security.

[–] troed@fedia.io 3 points 2 days ago (1 children)

Don't worry, I'm autistic myself and understand how difficult it can be to parse "it's thus irrelevant how many characters the user's password consists of" to mean something besides "all implementations must accept an unlimited amount of characters".

I do believe the point was understood by the general reader however.

[–] hummingbird@lemmy.world 5 points 2 days ago (3 children)

There is no good reason so send the passwors itself to the server. Send the hash and you will have a fixes length of data to send anyway.

And even if insist in sending the password over the wire, there is no problem on the backend to handle longer passwords than that, so that no one will run into a limit in practice. We're talking about bytes here, not even a kb.

[–] IphtashuFitz@lemmy.world 6 points 2 days ago (1 children)

Proper hashing of a password includes a salt that should be kept private. This means the password should definitely be passed to the server in plaintext. The server adds the salt to the password, then hashes it.

This adds more protection should an attacker somehow manage to get access to your hashed passwords. Even if they identify the type of hashing mechanism used it will prevent the use of rainbow tables, dictionary attacks, etc. against the hashes.

[–] troed@fedia.io 5 points 2 days ago (1 children)

While I'm not arguing for doing the crypto client side, the salt isn't needed to be private - only unique.

[–] IphtashuFitz@lemmy.world 1 points 2 days ago (2 children)

It definitely needs to be private. If an attacker can obtain both the password hashes and the salt(s) (via the same database vulnerability for example) then they have everything they need to run offline attacks against the passwords.

The salt is specifically to invalidate pre-generated rainbow tables, and doesn’t need to be kept private. It only needs to be unique.

The attacker generates rainbow tables by running common passwords through known hashing algorithms. So I run “password1” through a bunch of different algorithms, and save the results of each. Notably, generating decently large rainbow tables takes a lot of time, processing power, and storage space. Because you don’t just use common passwords; You’re basically running a brute force/dictionary attack on your own computer’s hashing algorithm.

Now if a database is unsalted, I can search for matching results against my rainbow table. When I see a match, it tells me both which users had that password and which hashing algorithm they were using. So now I can narrow down my focus to only using that algorithm.

But if a database is salted, all of my pre-generated tables are useless. Even if someone used “password”, it won’t match my rainbow tables because the hash was actually fed “password{hash}” instead. And even if multiple users used “password”, each salt is unique, so I don’t see a bunch of repeated hashes (which would point to those accounts using the same password). I would now need to generate all new tables with the salts I stole in order for my rainbow tables to be usable again. And even then, I’d need to repeat that table generation for every user.

[–] troed@fedia.io 8 points 2 days ago

No, it most definitely does not need to be private. The idea with salt is to invalidate rainbow tables. If you're "keeping it private" it's just another password.

The salt and the password (or its version after key stretching) are concatenated and fed to a cryptographic hash function, and the output hash value is then stored with the salt in a database. The salt does not need to be encrypted, because knowing the salt would not help the attacker.

https://en.wikipedia.org/wiki/Salt_(cryptography)

[–] Pika@sh.itjust.works 2 points 2 days ago (1 children)

you absolutely should not be hashing client side. You need to securely transmit the password to the server where it is hashed. You do not want clients knowing /how/ the password is salted/hashed. this lowers your security overall.

[–] The_Decryptor@aussie.zone 1 points 1 day ago

If you're doing hashing and salting on the client then yep it's useless, no difference to just using a hash output as a password.

If on the other hand you're doing a zero-knowledge password proof method then it's quite secure. As the password is never transmitted over the network, not even the server knows what it is, but can still verify the user has the correct one.

[–] x00z@lemmy.world 0 points 2 days ago (1 children)

There's some software that hashes the password clientside before sending it, sure. But it still should be hashed serverside too.

[–] Sonotsugipaa@lemmy.dbzer0.com 6 points 2 days ago (1 children)

If the server hashes a hash, the plaintext password's length is still irrelevant

[–] x00z@lemmy.world -3 points 2 days ago (1 children)

That's not true. There's limits everywhere.

[–] Sonotsugipaa@lemmy.dbzer0.com 1 points 2 days ago* (last edited 2 days ago)

Plaintext password (693 chars):
"hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2hunter2"

Clientside SHA-512 hash (64 bytes):
7399ed78effda820b2187bc70f0549dd67f6846c595f944d198a1f1136cd0ab91119d6f208a34b4419e969b9ffb326d3786cecb90828f0ab36a5e3835558740c

--- Client sends 64 bytes to the server


Serverside SHA-512 hash (64 bytes):
25293199e10af10e8a20f4ab38abccd2cdccd762d8cba2ed4871a2aea8fe6d9ffcc54cfe1c9cbd03245bfd2f0ee1039f06083b7bcbefd91b7fcbba182d588983

At no point the server has to deal with the length of the plaintext