Episode #125 of the Stack Overflow podcast is here. We talk Tilde Club and mechanical keyboards. Listen now

Hot answers tagged

4

There is no international committee on which function / term is correct or not. Work factor seems to be a more generic term, and I'd prefer that when talking about the relative amount of work that needs to be performed. That - at least internally - an iteration count is used together with a hash algorithm is an implementation detail. The work factor doesn'...


2

I am not aware of any research for this problem and it is difficult to declare anything as safe without a good reason. Probably that's why everyone holds back with answers. Suppose, however, the main attack against these BCrypt hashes is a dictionary attack, probably with custom hardware, I can't see a weakness in any of the solutions. Reusing the salt for ...


2

First there are a few technical hurdles to deal with. Nominally, bcrypt takes three inputs: the password itself, a work factor, and a salt. To hash or to verify a password, you need the salt. Usual bcrypt implementations generate the salt randomly when first processing a password, and encode the salt along with actual function output into an aggregate string....


2

bcrypt is a password hashing method. That means that it expects a password as input parameter. It has been designed so that it is hard to perform an offline test of guessed passwords by having an explicit work factor. It accepts (or requires) a salt so that: repeated passwords do not show up; that it is impossible to build a (rainbow) table. Now your ...


2

The bcrypt KDF does not use the entire block cipher as-is. It relies on a modified version of its key schedule. This is important because blowfish, unlike many other ciphers, has an extremely expensive key schedule. It requires about four kilobytes of fast memory, compared with SHA-1 which is so light that it can almost be computed entirely in x86 registers. ...


2

Iteration count is a parameter that you can choose directly; likewise memory use and parallelism for other password hashes like Argon2. These should be tuned according to the user's available resources: how many CPU cores they can use in parallel to log in, how much memory they can use while logging in, and how many seconds they are willing to wait for ...


1

To calculate a pepperedPassword I can either just concatenate two values: Bcrypt limits the password. This means that if the password is too long (longer than 56 bytes), it will simply be truncated. If you just attach the pepper to the password, there is a high risk that this will happen. Then the pepper's security gain could even be lost without being ...


1

A good way to find out what the authors meant would probably be reading their original paper where they introduced bcrypt : https://www.usenix.org/legacy/event/usenix99/provos/provos.pdf I think comparing bcrypt with e.g. pbkdf2 is not quite fair for bcrypt since it was an earlier construction and ideas like tweakable number of iterations are actually ...


1

It's generally not a good idea to store passwords of any kind in a database that's not secure, let alone a database that's intended to be publicly available. Is it secure? If you don't care about tampering and wrong entries in the database then I guess this setup is okay. Bcrypt already incorporates a salt to prevent rainbow attacks, so all passwords ...


1

BCrypt is not a key derivation function, it is a password hashing algorithm. If you needed to derive a key from a password, bcrypt has no capability to generate a 256-bit key. On the other hand, people do use actual key derivation functions, e.g.: pbkdf2 scrypt argon2 as the basis for their own password hashing algorithms. These key derivation ...


Only top voted, non community-wiki answers of a minimum length are eligible