How long would it take all of the supercomputers or cloud computing on Earth to bruteforce a significantly long password? I was arguing with a colleague who thinks that SHA256 (password + 64 character static salt) is &quot;insecure.&quot; My argument is that nothing in cryptography is &quot;secure,&quot; it's all a sliding scale, and the amount of time it would take to bruteforce such a combination would be so long (I'm thinking over 30 years) that for all intents and purposes it is &quot;secure.&quot; His argument is that because SHA256 hashes are so quick to generate, you can crack something like this using all of the computers on Earth quite easily, and as such, it's &quot;insecure.&quot;
I agree that using something like Bcrypt is &quot;more secure,&quot; but I wouldn't consider the above &quot;insecure&quot; because of the difficulty in cracking such a thing.  If we factor in Moore's law, which argument is correct? And how about if we change that 64-character salt to a
128-character salt?
I feel like this is an argument about semantics, but it annoys me that someone can have such a black-and-white perspective that &quot;this is insecure (SHA256 pass + insanely long salt), but this is secure (Bcrypt)&quot;. I understand that something like Bcrypt is obviously preferred and &quot;more secure,&quot; and I could see the argument that the other approach is &quot;less secure,&quot; but to say one is &quot;secure&quot; and the other is &quot;insecure&quot; is to me a fallacy.
A salt is supposed to be publicly available, for instance it needs to be stored in a DB next to the password hash. In that case the time it takes to recover the password is just a brute force or dictionary for the password. If the salt is static then rainbow tables may be used as well for any attack. Now if the password has an entropy of 256 bits then this is obviously not a problem. Actual passwords however only have about 42 bits of entropy on average, and this is why bcrypt is often needed to provide some additional security.
It is of course also possible to use a 256 bit pepper, which is a salt value that is kept secret. In that case &quot;cracking&quot; the hash will require both the password and the pepper. We cannot do that even with quantum computers because the energy requirements would be too high (cracking &gt; 128 bit security against classical computers or &gt; 256 bit against quantum computers is completely infeasible and forever will be).