是否可以在不使用salt的情况下配置OpenLDAP加密密码?

是否可以在不使用salt的情况下配置OpenLDAP加密密码?,ldap,openldap,salt,sha512,sha2,Ldap,Openldap,Salt,Sha512,Sha2,从文档中我得到了这个配置,但使用了salt 密码哈希{CRYPT} 密码加密盐格式“$6$%.16s” 我需要将未经salt加密生成的密码存储在LDAP目录中。您只需导入具有现有userPassword值的用户条目,而无需salt。如果哈希方案是本地OpenLDAP安装支持的方案,密码验证将起作用 设置新密码时,配置指令密码散列和密码加密salt格式。您最好使用另一个不进行salt的密码存储方案,如{SHA}或{MD5},而不是{crypt}: password-hash {SHA} 如果需

从文档中我得到了这个配置,但使用了salt

密码哈希{CRYPT} 密码加密盐格式“$6$%.16s”


我需要将未经salt加密生成的密码存储在LDAP目录中。

您只需导入具有现有userPassword值的用户条目,而无需salt。如果哈希方案是本地OpenLDAP安装支持的方案,密码验证将起作用


设置新密码时,配置指令密码散列和密码加密salt格式。

您最好使用另一个不进行salt的密码存储方案,如{SHA}或{MD5},而不是{crypt}:

password-hash {SHA}

如果需要使用{CRYPT}:

  • 您仍然可以提供静态盐(!糟糕,不安全,几乎就像没有盐一样!),只需遵循给定的格式:

    password-crypt-salt-format "$6$%.16s"
    
    $6$
    SHA512
    模式的密码标识符,我们提供了一个16个字符长的salt:

    ~$ mkpasswd -m sha-512 --salt 'verybadseasoning' secret1
    $6$verybadseasoning$Q2kceqwB2uYT2tU./QF.qRCIWjMQdObEAZ71Ni5Ko1zJOnxUwpu3oMeyjtgiR3hSVHIT20Ay9V1.pXaNhkHYk/
    
    ~$ mkpasswd -m sha-512 --salt 'verybadseasoning' secret2
    $6$verybadseasoning$SHof1u2BCPJhYoVOk.LkWax7n5g28rzMkNCRAC5NmlT29GSeWLAlv2AoSkOS4rYfMUXsmTcyIxKDUU8aL7TlP0
    
    请注意,
    mkpasswd
    不允许使用空盐:

    ~$ mkpasswd -m sha-512 --salt '' secret
    Wrong salt length: 0 bytes when 8 <= n <= 16 expected.
    
    它告诉crypt()使用SHA512算法,将
    %s
    替换为一个零字符的salt字符串(
    %.0s
    )。我不知道slapd是否强制进行%s转换,但只设置
    “$6$”
    ,而不使用任何盐渍替代,可能会起到相同的作用,因为这意味着相同的(无盐渍),即:


请注意,缺少salt会使您的系统受到字典攻击。

您需要不安全为什么?因为我需要在目录中以不安全的格式存储大量密码,此格式为“$6$%.0s”,它也会忽略令牌,我只想忽略salt,如果我遗漏了什么,很抱歉,感谢您的回答否这是一种单独指定
$6$
的方法(无盐)<代码>密码加密盐格式需要格式为的字符串
$6$%.0s
实际上告诉crypt()使用SHA512(
$6$
),并从传入或生成的salt中替换0个字符的字符串(
%.0s
)。请参见php实现示例,输出显示一个空salt($$),后跟预期的加密哈希。我更新了答案,希望现在更清楚。
password-crypt-salt-format "$6$%.0s"
~$ php -r 'print(crypt("secret", "$6$"));'
$6$$2M9DchxW4txWyTYoZrH9D3VvAAQxBpEezYsLY6Cao.jwzEXpyL9xwip9hiUZX7GqTqe/E/z6iKvZqXUuqniQH.