Password hashing uses bcrypt
From another issue, it appears that GitLab uses `bcrypt` for hashing passwords. This appears to be generally strong, however it appears it is not in the list of FIPS approved algorithms: https://www.elastic.co/blog/configuring-elasticsearch-in-a-fips-140-2-environment
While others should validate this, the logic seems to be:
1. 140-2 does not include password hashing algorithms
1. bcrypt uses blowfish, which is not validated, therefore not FIPS 140-2 approved
1. You can use PBKDF2, which supports a variety of hashes, such as SHA-2 which is approved
## Proposal
1. introduce a DB new column to store encryptor type (currently `brcypt`)
2. during successful login:
- if encryptor type is `bcrypt`, update the password to store as `SHA512`
3. after a transitional period, force password resets for users still having `bcrypt` password
epic