ELI5 version
Some systems, especially older ones, stop reading when they reach a space.
Not ELI5 version
Before Window/GUI systems, everything was done on a command line, and even today, a lot of system administrator and developer stuff still is. With command line tools, the default is to interpret any whitespace as the break between parameters. This can be overcome with quotes, but it is simpler if you don’t need to, so plenty of admins and devs are just in the happiest of not using spaces.
Treating white space as the break between inputs is super common. Whenever you’re streaming text data, either from standard input or from a file, there are typically 2 read operations. “Readline” will get data until it encounters the newline/carriage return characters and “Read” which will get data until it reaches any whitespace. So if an application was storing your password in a file, it could potentially only get part of it if there are spaces.
Personally, I do use pass-phases but don’t put the spaces in, and I still do common substitutions because plenty of systems still enforce complexity even though that is no longer considered best practice by NIST. However, whenever I can, I just use a generated password from Chrome.
Pro tip: If you want a good alternative to space use underscore “_” It doesn’t have any of the issues I’ve described.
Latest Answers