### Summary

While setting up sonarqube and automating setting the admin password directly in the database, I noticed that their bcrypt implementation is outdated and only supports the 2a version, while the password_hash bcrypt filter using passlib defaults to the latest version (2b).

I'd like to set the ident parameter of passlib bcrypt function from the password_hash filter (like with rounds).

Right now I'm doing this:
```yaml
    - name: encrypt password
      command:
        cmd: python3 -
        stdin: |
          from passlib.hash import bcrypt
          print(bcrypt.using(rounds=12,ident="2a").hash("{{ admin_password }}"))
      register: tmp
```
as a workaround.

Obviously, sonarqube should upgrade their bcrypt version, but ansible should also be able to handle this.

Passlib doc: https://passlib.readthedocs.io/en/stable/lib/passlib.hash.bcrypt.html#

### Issue Type

Feature Idea

### Component Name

password_hash

### Additional Information

```yaml
password: "{{ admin_password | password_hash('bcrypt', rounds=12, ident='2a') }}"
```

### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
super(CryptHash, self).__init__(algorithm)
        if not HAS_CRYPT:
            raise AnsibleError("crypt.crypt cannot be used as the 'crypt' python library is not installed or is unusable.", orig_exc=CRYPT_E)
        if sys.platform.startswith('darwin'):
            raise AnsibleError("crypt.crypt not supported on Mac OS X/Darwin, install passlib python module")
        if algorithm not in self.algorithms:
            raise AnsibleError("crypt.crypt does not support '%s' algorithm" % self.algorithm)
        self.algo_data = self.algorithms[algorithm]
    def hash(self, secret, salt=None, salt_size=None, rounds=None):
        salt = self._salt(salt, salt_size)
        rounds = self._rounds(rounds)
        return self._hash(secret, salt, rounds)
    def _salt(self, salt, salt_size):
        salt_size = salt_size or self.algo_data.salt_size
        ret = salt or random_salt(salt_size)
        if re.search(r'[^./0-9A-Za-z]', ret):
            raise AnsibleError("invalid characters in salt")
        if self.algo_data.salt_exact and len(ret) != self.algo_data.salt_size:
            raise AnsibleError("invalid salt size")
        elif not self.algo_data.salt_exact and len(ret) > self.algo_data.salt_size:
            raise AnsibleError("invalid salt size")
        return ret
    def _rounds(self, rounds):
        if rounds == self.algo_data.implicit_rounds:
            
            
            return None
        else:
            return rounds
    def _hash(self, secret, salt, rounds):