Password encrypt & check
Why reinvent the wheel when you can just use password_hash? Your code could be replaced by this:

$hash = password_hash($password);

password_verify($password, $hash);


It uses bcrypt (which uses blowfish internally), and it even manages salts for you.

This should also answer your additional questions: You don't really need any of the functions.

Misc


Blowfish is an encryption algorithm, but when used with crypt, what you do is still hashing, not encryption. So your function should be called password_hash.
=== isn't timing safe. This is more of a theoretical problem, but it's still better to use a timing safe function here.
if (cond) {return true;} else {return false;} can be written as return cond;
Contrary to your comments, generated salts may contain =. 
You should document that your salt generation function can only generate salts with a max length of 44, in case it's reused in a different context.
One-time variables can be nice to give something a name, thus resulting in easier to read code (eg in your first two functions). But sometimes they are not really needed. In your second function, I would simply write return crypt($password, $existing_hash) === $existing_hash, it's shorter and I don't think you loose any readability.