gpt4 book ai didi

cryptography - 如何使用ansible创建用户并设置密码?

转载 作者:行者123 更新时间:2023-12-03 12:05:20 25 4
gpt4 key购买 nike

documentation将我们引至github example,但这有点稀疏而神秘。

它说:

# created with:
# crypt.crypt('This is my Password', '$1$SomeSalt')
password: $1$SomeSalt$UqddPX3r4kH3UL5jq5/ZI.

但是 crypt.crypt 不会发出示例显示的内容。它还使用MD5。

我尝试了这个:
# python
import crypt
crypt.crypt('This is my Password', '$6$somereallyniceandbigrandomsalt$')
>> '$69LxCegsnIwI'

但是用户的密码字段应为:
password: $6$somereallyniceandbigrandomsalt$UqddPX3r4kH3UL5jq5/ZI.

其中包含三个$分隔符,用于分隔 6(表示其SHA-512哈希值),盐和加密的密码。

请注意,python crypt docs没有提及有关$ N格式的任何内容。

问题:
  • 是提供给crypt.crypt的盐,应该以尾随$结束还是以$ N $ SALT格式显示?
  • Python文档引用DES,但是如何调用SHA-512或MD5,以及该文档的位置在哪里?
  • 我真的应该接受crypt.crypt的输出并切断第一个$ 6并使$ N $ SALT $ CRYPTED吗?这是ansible的需求吗?
  • 最佳答案

    文档中显示的python示例取决于您所使用的操作系统上运行的crypt版本。

    我在OS X上生成了crypt,而我定位的服务器是ubuntu。

    由于操作系统提供的crypt实现方式不同,结果不同且不兼容。

    使用此代替:

    http://pythonhosted.org/passlib/

    Passlib is a password hashing library for Python 2 & 3, which provides cross-platform implementations of over 30 password hashing algorithms, as well as a framework for managing existing password hashes. It’s designed to be useful for a wide range of tasks, from verifying a hash found in /etc/shadow, to providing full-strength password hashing for multi-user application.


    >>> # import the hash algorithm
    >>> from passlib.hash import sha512_crypt

    >>> # generate new salt, and hash a password
    >>> hash = sha512_crypt.encrypt("password")
    >>> hash

    '$ 6 $ rounds = 656000 $ BthPsosdEpqOM7Qd $ l / ln9nyEfxM67ea8Bvb79JoW50pGjf6iM87taIvfSmpjasE4 / wBG1.60pFS6W992T7Q1q2wikMbxYUvMHD1tT1'

    关于cryptography - 如何使用ansible创建用户并设置密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15231661/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com