- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试调用 Ansible 的 password_hash
函数...
{{ admin_password | password_hash('bcrypt') }}
我已经尝试了十几种方法来告诉 Ansible passlib 和 python 2.7 在哪里,但无论如何,我不断得到结果......
"AnsibleFilterError: crypt.crypt does not support 'bcrypt' algorithm"
据我所知,ansible 过去只使用 crypt
,但较新的版本(我目前使用的是 2.7.9)使用 passlib
和 passlib据我所知支持 bcrypt(这是有限的)。我已将以下内容添加到我的主机文件中...
ansible_python_interpreter = /usr/bin/python2.7
我正在像这样安装 PIP 和 Passlib...
- name: Install PY stuff...
yum:
name: ['python2-pip','python2-passlib']
state: present
- name: Ensure bcrypt support is installed for python passlib
pip:
name: "passlib[bcrypt]"
executable: pip-2.7
我本以为 yum 调用可以正确设置 passlib 但它没有用在职的。我不确定通过 yum 安装时 passlib 是否包含 bcrypt,因为它似乎只使用 PIP 时不包含,所以为了以防万一,我都做了。没有快乐。
我应该补充一点,我在 Amazon Linux 2 上的 AWS 中,并且我已经启用了 epel 存储库等。
编辑:我已经尝试了评论中的一些建议(使用 passlib 1.6,验证 bcrypt 是否适用于 python),虽然我可以验证 passlib 在 python 中测试时是否有效,但我继续从中得到相同的答案Ansible AnsibleFilterError: crypt.crypt 不支持 'bcrypt' 算法
我发现的唯一与此相关的是:https://github.com/ansible/ansible/issues/17266但它描述了默认情况下寻找 passlib 并且仅在 crypt.crypt 不存在时回退。那么,为什么 python 在我手动运行时看到 passlib,而不是从 playbook 中看到?
最佳答案
首先,确认 Ansible 正在使用您认为的 Python。查看 head -1 $(which ansible)
,您应该会看到如下内容:
#!/usr/bin/python2
确保您已经在 Python 可以找到的地方安装了 passlib
:
$ /usr/bin/python2
Python 2.7.15 (default, Oct 15 2018, 15:24:06)
[GCC 8.1.1 20180712 (Red Hat 8.1.1-5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import passlib
>>>
我使用的是 Fedora 28,所以我可以简单地 yum -y install
.
python2-passlib
确保passlib
支持bcrypt
:
>>> from passlib.hash import bcrypt
>>> bcrypt.hash('secret')
'$2b$12$3YUj4BgoJ8ba1H4XtH/p3.4DG0lMgaHQ4qYshpj/.COe1eHEU.71K'
>>>
如果以上都成功,password_hash
过滤器应该工作:
$ cat playbook.yml
---
- hosts: localhost
gather_facts: false
tasks:
- debug:
msg: "{{ 'secret' | password_hash('bcrypt') }}"
$ ansible-playbook playbook.yml
PLAY [localhost] ********************************************************************
TASK [debug] ************************************************************************
ok: [localhost] => {
"msg": "$2b$12$H9rnvJwYtSoy05WHMYuJR.Kaz9kxLJleT7XUsIauWwd3Mdk0H/Kl6"
}
PLAY RECAP **************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0
关于python - 即使安装了 passlib,Ansible password_hash 也不会使用 bcrypt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55875213/
我正在使用 PHP 5.5+ password_hash() 函数在将密码存储到数据库之前对其进行哈希处理。到目前为止一切顺利。 我有点不确定的是,是否需要对从表单发送到我的 PHP 脚本的密码进行预
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我一直在阅读有关密码哈希函数的内容,据说:使用盐使黑客的工作更加困难,使用高度成本算法等我找到了这个 password_hash 函数但是......它返回这个(字母是一个例子来解释) AAAACCC
根据(相对)新的 PHP 文档: password_hash函数使用随机盐(我们不应该担心.. O_O),所以如果我理解正确,盐必须存储在某个地方,否则用户在注册到网站后将无法登录(不同的盐=>不同的
这个问题在这里已经有了答案: Using PHP 5.5's password_hash and password_verify function (4 个答案) 关闭 7 年前。 我正在考虑使用
这个问题在这里已经有了答案: password_hash returns different value every time (1 个回答) 关闭 4 年前。 我试图在将密码存储到用户数据库之前对
如果我有两个使用 password_hash 创建的密码哈希功能,我如何判断它们是否来自相同的基本密码?我知道它每次都使用不同的盐。我没有纯文本。 例如: $2y$10$M6CnjqaxuUKNhg8
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 6 年前。 Improve t
我知道 PHP 函数,password_hash 在一个字符串中输出算法、成本、salt 和哈希,因此 password_verify 可以检查密码。 来自 PHP page 的示例输出: $2y$1
我的注册脚本接受用户密码,然后使用 PHP 的 password_hash 函数对密码进行加密,然后将其放入数据库中。当我使用刚创建的用户登录时,出现检查密码是否相同的错误。就我而言,他们不是。我在登
阅读有关新 password_hash 的文档PHP 5.5 的函数,我想知道默认算法是什么: password_hash("rasmuslerdorf", PASSWORD_DEFAULT); 关于
我正在制作一个登录系统,我想对密码进行哈希处理以使其更安全,但每次都会返回不同的哈希值,甚至无法使用 password_verify() 进行验证,这是我的代码: $password = passwo
这个问题在这里已经有了答案: Secure hash and salt for PHP passwords (14 个答案) 关闭 8 年前。 我想知道 password_hash("customp
我现在正在本地主机上运行 php 版本 5.4.16,同时我正在开发我的网站。我想使用 password_hash(),但我一直收到此错误: Fatal error: Call to undefine
PHP password_hash() 函数允许的最大成本是多少? $options = [ 'cost' => 18, ]; $res = password_ha
PHP password_hash() 函数允许的最大成本是多少? $options = [ 'cost' => 18, ]; $res = password_ha
我有 2 个具有不同代码的注册页面,但我希望它们返回相同的密码哈希值!或至少 Password_verify 接受的格式首先是: function _password_hash($password)
这个问题在这里已经有了答案: Implement password recovery best practice (12 个答案) 关闭 7 年前。 我目前正在使用 password_hash,这是
我正在使用 password_hash 函数来保护登录页面上的用户密码。但是,在注册页面上,我要求用户两次提示他的密码,但我无法比较两个哈希值,因为即使密码相同,它们也不同。 我应该将两个密码作为字符
我可以在 PHP 5.5 password_hash() 和 password_verify() 中使用的最大密码长度是多少? 最佳答案 好的,让我们来看看这个。 函数确实有密码长度限制。就像 PHP
我是一名优秀的程序员,十分优秀!