scrypt and argon2: binary safe? for bcrypt it's probably common knowledge that it isnt binary safe because it uses null termination, which means that when bcrypt is used you need to make sure that no one does these (e.g. by hashing the passwords in a different binary safe function like SHA256 before and encoding the output)

by now we have essentially 2 other ways which can be used for password hashing, scrypt and argon2, and after a quick round of using google I couldnt really find any info on whether these 2 are binary-safe (meaning I can just use them directly on passwords which certainly makes them easier to use) or not.

does anyone know?
BCrypt, Argon2 and scrypt are all "binary-safe".

That is, there is nothing inherent in the algorithms (and their reference C implementations) that would require the "password" input to have any structure. 

The only exception maybe being that bcrypt has a 72 bytes input limitation, but that can be worked-around using pre-hashing.

However, particular APIs may wrap things differently and "help" the programmer by cutting off at \0 bytes or similar things. If this is the sort of info you need, you need to consult the documentation / the source code of the relevant wrapper.