SHA is OK, if you have a long random key. I forget the numbers, but a decent random key (100 chars?) becomes impossible to crack before the heat death of the universe. The exponential growth of the password space eventually defeats the weakness of SHA.
The reason you need bcrypt is that user supplied passwords are crap, and can be cracked very quickly.