Короткие пароли легко запомнить, но они же легче и вычисляются.
Пробовал найти что-то, наподобие алгоритма или утилиты для расширения пароля. Что-то ничего не нагуглилось. Есть подобное? Чтобы имея короткий пароль, проводить шифрование как с длинным?
PS: Цель - не увеличить надёжность ключа, а предотвратить перебор.
Решение:
#!/bin/sh
#longpass.sh
#Depends: dash, coreutils
sname="LongPass"
sversion="0.20190319"
echo "$sname $sversion" >&2
tnocomp=""
tcomp="cut"
[ ! "$(command -v $tcomp)" ] && tnocomp="$tnocomp $tcomp"
tcomp="head"
[ ! "$(command -v $tcomp)" ] && tnocomp="$tnocomp $tcomp"
tcomp="sha512sum"
[ ! "$(command -v $tcomp)" ] && tnocomp="$tnocomp $tcomp"
if [ "x$tnocomp" != "x" ]
then
echo "Not found:${tnocomp}!" >&2
echo "" >&2
exit 1
fi
length=128
sec="0000"
fhlp="false"
while getopts ":l:s:h" opt
do
case $opt in
l) length="$OPTARG"
;;
s) sec="$OPTARG"
;;
h) fhlp="true"
;;
*) echo "Unknown option -$OPTARG"
exit 1
;;
esac
done
shift "$(($OPTIND - 1))"
pass="$1"
if [ "x$pass" = "x" -o "x$fhlp" = "xtrue" ]
then
echo "Usage:"
echo "$0 [options] password"
echo "Options:"
echo " -l N length longpass (default = 128)"
echo " -s str security code (default = 0000)"
echo " -h help"
exit 0
fi
lpass="$pass$(echo ${pass}${sec} | sha512sum | cut -f1 -d' ')"
echo $lpass | head -c $length
echo ""