##### SUMMARY
Evaluating `"{{ 'changeme' | password_hash('bcrypt') }}"`
results in:
```
The full traceback is:
Traceback (most recent call last):
  File "/home/orion/ansible/lib/ansible/executor/task_executor.py", line 155, in run
    res = self._execute()
  File "/home/orion/ansible/lib/ansible/executor/task_executor.py", line 599, in _execute
    self._task.post_validate(templar=templar)
  File "/home/orion/ansible/lib/ansible/playbook/task.py", line 299, in post_validate
    super(Task, self).post_validate(templar)
  File "/home/orion/ansible/lib/ansible/playbook/base.py", line 431, in post_validate
    value = templar.template(getattr(self, name))
  File "/home/orion/ansible/lib/ansible/template/__init__.py", line 747, in template
    d[k] = self.template(
  File "/home/orion/ansible/lib/ansible/template/__init__.py", line 701, in template
    result = self.do_template(
  File "/home/orion/ansible/lib/ansible/template/__init__.py", line 966, in do_template
    res = j2_concat(rf)
  File "<template>", line 12, in root
  File "/home/orion/ansible/lib/ansible/plugins/filter/core.py", line 270, in get_encrypted_password
    return passlib_or_crypt(password, hashtype, salt=salt, salt_size=salt_size, rounds=rounds)
  File "/home/orion/ansible/lib/ansible/utils/encrypt.py", line 193, in passlib_or_crypt
    return CryptHash(algorithm).hash(secret, salt=salt, salt_size=salt_size, rounds=rounds)
  File "/home/orion/ansible/lib/ansible/utils/encrypt.py", line 90, in hash
    return self._hash(secret, salt, rounds)
  File "/home/orion/ansible/lib/ansible/utils/encrypt.py", line 109, in _hash
    result = crypt.crypt(secret, saltstring)
  File "/usr/lib64/python3.9/crypt.py", line 82, in crypt
    return _crypt.crypt(word, salt)
OSError: [Errno 22] Invalid argument
fatal: [pfsense-test]: FAILED! => {
    "msg": "Unexpected failure during module execution.",
    "stdout": ""
}
```
##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
encrypt

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.10.0.dev0
  config file = /home/orion/ansible-pfsense/ansible.cfg
  configured module search path = ['/home/orion/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/orion/ansible/lib/ansible
  executable location = /home/orion/ansible/bin/ansible
  python version = 3.9.0b1 (default, May 29 2020, 00:00:00) [GCC 10.1.1 20200507 (Red Hat 10.1.1-1)]
```
Current develop head
##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
DEFAULT_HOST_LIST(/home/orion/ansible-pfsense/ansible.cfg) = ['/home/orion/ansible-pfsense/hosts']
DEFAULT_REMOTE_USER(/home/orion/ansible-pfsense/ansible.cfg) = root
```

##### OS / ENVIRONMENT
host is Fedora Rawhide (F33).

##### STEPS TO REPRODUCE
```yaml
---
- hosts: pfsense
  tasks:
    - debug:
        msg: "{{ 'changeme' | password_hash('bcrypt') }}"


This seems related:
https://bitbucket.org/ecollins/passlib/issues/115
https://bugs.python.org/issue39289
algo = namedtuple('algo', ['crypt_id', 'salt_size', 'implicit_rounds'])
    algorithms = {
        'md5_crypt': algo(crypt_id='1', salt_size=8, implicit_rounds=None),
        'bcrypt': algo(crypt_id='2a', salt_size=22, implicit_rounds=None),
        'sha256_crypt': algo(crypt_id='5', salt_size=16, implicit_rounds=5000),
        'sha512_crypt': algo(crypt_id='6', salt_size=16, implicit_rounds=5000),
    }
    def __init__(self, algorithm):
        self.algorithm = algorithm
class CryptHash(BaseHash):
    def __init__(self, algorithm):
        super(CryptHash, self).__init__(algorithm)
        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):