Password reuse is bad for many many reasons. More secure systems require changing a password regularly preventing reuse.

One potential solution to this is a password generation scheme. Imagine a base password and a simple algorithm for modifying it based off of a very simple or short password that is made up each time. The simplest version being appending the short password to the base password.

Looking at the simplest version, I have some base password foo and for each website I come up with some easily remembered, not overly secure, word to modify it. So my password for gitlab becomes fooGit and my password for facebook is fooFace etc. For places that require changing passwords every month, it could be as simple as fooOne, fooTwo, fooThree etc, some easy to remember modification each month.

Assuming that foo is actually a relatively strong password, how secure would such an approach like this be?

If the algorithm I mentioned was as trivial as what I mentioned it would be easy for someone who gets your old password to guess at a new password. However, someone would have to have access to at least two alternative passwords to figure out your using an algorithm like this, and even then they would need to guess the value appended to it. They would lack rainbow tables for your password algorithm, so unless they can just guess what your next password is they have limited means of attacking your password I would guess?

My belief is that this approach would lead to a relatively secured approach, despite the potential for guessing at passwords once someone figures out the algorithm. My reasoning is basically that no one is looking for this algorithm and so it's likely to go unnoticed. Is that true, or are attackers aware of people trying something like this and actively attempting to exploit it?

If the algorithm was mildly more complex than 'just append the two values", but still simple enough to be done quickly in one's head, would that do anything to increase its security?



No, that's not true; and yes, password crackers are trying things like this and actively attempting to exploit it.

This basic approach is probably the most common way people attempt to make unique passwords for each site, when they bother at all. I do not actively attempt password cracking, but I assume there are ready-made password mangling rules for several common patterns given a website and a password list, to plug into cracking tools.

Your reasoning might be good on the surface assuming an attacker is only able to try logging into the website like you do, getting around one guess every 10-15 seconds or so. But that's not how passwords are stolen these days. Normally some hacker steals a database from a website, posts the database online (or sells it), and then somebody comes along with a fancy GPU rig and gets to try 300,000,000,000 passwords every second with no lockouts or other software controls.

Or the stolen database is plaintext.

Either way, if they get one password for Dropbox or LinkedIn, and the mangling rule happens to be one of the common ones, it would be easy enough to get your other passwords.

You might get lucky and whomever gets your first password won't bother to spend the extra few minutes to find the "base" password for plugging into other sites, or you might not.

You're definitely better off than using exactly the same password everywhere. But a much better approach is to just use a password manager with random passwords for each login.


Assuming a foo of reasonable complexity then on the face of it you would get a decent level of password complexity out of it, enough to make it very hard to brute force, whilst still being easy to remember.

As such it is quite suitable for sites that are of medium to low value ie not your bank or email, probably not your social media.

However sooner or later one site you use it for will be compromised and they will have stored it as an unsalted md5 hash and it will be broken.

At that point the complexity of the second part becomes critical. If it is as simple as the first 4 letters of the domain then it may well compromise the entire algorithm and all of your logins.

Literally millions of password cracks from breaches are in the public domain and are analysed by both black and white hats for this type of thing.

Just using a simple algorithm likely puts you in the top few percent of difficulty and a slightly more complex one eg face => gbdf plus a decent value of foo probably puts you even higher.

Even though the lack of reuse does prevent basic credential stuffing, any algorithm easy enough to remember and compute easily by a person is susceptible to automated analysis of existing breach data. Distributed credential stuffing is incredibly hard to detect and whilst your pattern is better than most internet users it would probably be better to use a password manager.

You could also register with https://haveibeenpwned.com

This would notify you if your pattern was exposed in a public breach.

Your Answer

