A website is breached, exposing the usernames and MD5 password hashes of its entire user base. Many of these passwords are later cracked using rainbow tables. Which of the following actions could have helped prevent the use of rainbow tables on the password hashes?
A. use salting when computing MD5 hashes of the user passwords
B. Use SHA as a hashing algorithm instead of MD5
C. Require SSL for all user logins to secure the password hashes in transit
D. Prevent users from using a dictionary word in their password