Синтаксическая ошибка при попытке сократить часть переменной

Формат AIX {smd5} является нестандартным. Это второстепенный вариант формата *BSD/Linux/Solaris "MD5" (который генерируется с помощью openssl passwd -1). Я не смог найти много информации об этом. В файле aix_smd5_fmt_plug.c есть код, сгенерированный John the Ripper (присутствует в jumbo версии 1.8.0), который вычисляет его. Из прочтения кода видно, что разница заключается в том, что вариант BSD MD5 фактически препарирует строку $1$ к соли в одном месте, в то время как вариант AIX - нет. Не должно быть очень сложно исправить OpenSSL для поддержки этого варианта, если вы знаете C.

Вы можете изменить алгоритм, используемый AIX, отредактировав /etc/security/pwdalg.cfg и добавив строку lpa_options = std_hash=true в строке smd5:. Обычно это делается командой chsec:

chsec -f /etc/security/pwdalg.cfg -s md5 -a std_hash=true

Насколько я понимаю, это делает недействительными пароли, записанные нестандартным алгоритмом.

Обратите внимание, что LDAP-соленый MD5 не является хорошим хэшем пароля, так как он не медленный. Как безопасно хранить хэш-пароли? объясняет, что это значит. Алгоритмы BSD и AIX "MD5" являются медленными (в идеале медленными, но намного лучше, чем не медленные алгоритмы).

-2
28.03.2015, 00:46
3 ответа

Решил его в двух петлях. Может, это и не оптимально, но работает. Если кто-нибудь знает другое решение - дайте нам знать.

for i in $(find  /directory -type f -name '*.backup')
do 
    for j in $(find  /directory -type f -name '*.backup'|cut -d"." -f1-3)
    do 
        echo $i $j 
    done 
done
-1
28.01.2020, 05:16

Я думаю, вы пропустили эхо перед $i

for i in $(find /directory -type f -name '*.backup')
do 
echo $i $(echo "$i"|cut -d"." -f1-3)
done`
2
28.01.2020, 05:16

Может быть, вы можете использовать BaseName и или подстроки?

См. Man BaseName и http://tldp.org/ldp /abs/html/string-manipulation.html Для деталей на подсусах.

Использование BaseName Вы можете получить первую часть имени файла IE. BaseName $ i ".Backup" будет раздеваться. Backup из имени файла.

и $ {I :: - 7} затрагивают последние 7 символов из переменной.

1
28.01.2020, 05:16

Теги

Похожие вопросы