【问题标题】:Script to generate MD5 hash with openssl使用 openssl 生成 MD5 哈希的脚本
【发布时间】:2015-10-14 21:05:29
【问题描述】:

我正在尝试使用 openssl 生成一些 MD5 哈希值,以便与 chpasswd 一起使用

例如。 CSV 文件:

Sample,User,SU,,sauser,password
Test,User,TU,,teuser,password
User, T Test,TEST,,username,password

我创建的脚本:

#!/bin/bash
file=$(readlink -f "$1") # open csv 

while read line; do
    salt=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 5 | head -n 1) #randomly generate 5 char salt
    user=$(echo "$line" | cut -d, -f5 | xargs) # cut user from csv and trim with xargs
    pass=$(echo "$line" | cut -d, -f6 | xargs) # cut pass from csv and trim with xargs
    echo "$user:"$(openssl passwd -1 -salt "$salt" "$pass") >> ./global_chpasswd.data # gen MD5 hash per user and store in file
done < "$file" # close csv

但是,如果我使用从该脚本生成的任何 MD5 并尝试将其与 chpasswd 一起使用,则它不起作用。

echo 'username:$1$K8m2T$gb3C0Sz4JlXyewe8VRhxv.' | chpasswd -e

这个密码会失效

如果我尝试在没有脚本的情况下手动执行此操作:

echo "username:"$(openssl passwd -1 -salt salt password) | chpasswd -e

【问题讨论】:

  • 我相信前面的$1$ 表示密码。实际的加密或摘要密码是K8m2T$gb3C0Sz4JlXyewe8VRhxv.。 ($passwd 文件中的分隔符)。

标签: linux bash openssl passwd


【解决方案1】:

您的 CSV 文件可能包含作为密码字段(它是最后一个字段)的一部分包含的回车。

在处理之前,请务必在 CSV 上运行 dos2unix 或使用 tr -d '\r'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 2015-08-14
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多