#!/usr/bin/env bash
DEVICE="/dev/sdX"
KNOWN="xavVRxk{kD%X13"
CHARS=('W' 'w' '2' '@' '3' '#' '4' '$' 'Z' 'z' 'X' 'x' 'M' 'm')
COUNT=0
try_pass() {
local pass="$1"
COUNT=$((COUNT + 1))
# Показываем текущий пароль
printf "\r[%6d] Проверяется: %-18s" "$COUNT" "$pass"
if printf '%s' "$pass" |
cryptsetup open "$DEVICE" luks-test --test-passphrase >/dev/null 2>&1
then
echo
echo "================================="
echo "Пароль найден!"
echo "$pass"
echo "================================="
exit 0
fi
}
echo "Пробую варианты с 3 символами..."
for a in "${CHARS[@]}"; do
for b in "${CHARS[@]}"; do
for c in "${CHARS[@]}"; do
try_pass "${a}${b}${c}${KNOWN}"
done
done
done
echo
echo "Пробую варианты с 4 символами..."
for a in "${CHARS[@]}"; do
for b in "${CHARS[@]}"; do
for c in "${CHARS[@]}"; do
for d in "${CHARS[@]}"; do
try_pass "${a}${b}${c}${d}${KNOWN}"
done
done
done
done
echo
echo "Пароль не найден."