You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
3.0 KiB
104 lines
3.0 KiB
# --- enable/disable this file ---
|
|
SRC_ENABLED=true
|
|
|
|
case "$SRC_ENABLED" in
|
|
1|true|yes|on) unset SRC_ENABLED ;; # enabled — clean up and continue
|
|
*) unset SRC_ENABLED; return ;; # disabled — clean up and skip this file
|
|
esac
|
|
# ---------------------------------
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# hesgenk2() - generator hesel
|
|
# ZDROJ (puvodni forma): https://hesgen.rfa.cz/
|
|
# Celkova delka hesla = DelkaHesla + 2 cislice
|
|
# Poznamka: cislovani zacina od "0" :o)
|
|
# Modifikace - PeVa 24.06.2026 (shellcheck, futureproofing, code purge)
|
|
# Preveden na funkci pro sourcovani z .bashrc - kompatibilni s bash
|
|
# na RHEL5 (bash 3.2) a Debian Squeeze (bash 4.1) i novejsimi.
|
|
#
|
|
# Pouziti:
|
|
# hesgenk2 [PocetHesel] [DelkaHesla]
|
|
#
|
|
# Priklady:
|
|
# hesgenk2 -> 1 heslo, delka 12 (+2 cislice)
|
|
# hesgenk2 5 -> 5 hesel, delka 12 (+2 cislice)
|
|
# hesgenk2 5 16 -> 5 hesel, delka 16 (+2 cislice)
|
|
# ---------------------------------------------------------------------------
|
|
hesgenk2() {
|
|
# Napoveda
|
|
case "$1" in
|
|
-h|--help|help)
|
|
echo "Pouziti: hesgenk2 [PocetHesel] [DelkaHesla]"
|
|
echo
|
|
echo " PocetHesel pocet vygenerovanych hesel (cislo >= 1, vychozi 1)"
|
|
echo " DelkaHesla delka textove casti hesla (cislo >= 12, vychozi 12)"
|
|
echo " vysledne heslo ma DelkaHesla + 2 cislice na konci"
|
|
echo
|
|
echo "Priklady:"
|
|
echo " hesgenk2 -> 1 heslo, delka 12 (+2 cislice)"
|
|
echo " hesgenk2 5 -> 5 hesel, delka 12 (+2 cislice)"
|
|
echo " hesgenk2 5 16 -> 5 hesel, delka 16 (+2 cislice)"
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
# Vychozi hodnoty
|
|
local PocetHesel=1
|
|
local DelkaHesla=12
|
|
|
|
# Parametry (bez ";", aby prazdny/nenumericky vstup neshodil shell)
|
|
local ParamPocet="${1:-0}"
|
|
local ParamDelka="${2:-0}"
|
|
ParamPocet=$((0 + ParamPocet))
|
|
ParamDelka=$((0 + ParamDelka))
|
|
|
|
if [ "$ParamPocet" -ge 1 ]; then
|
|
PocetHesel=$ParamPocet
|
|
fi
|
|
if [ "$ParamDelka" -ge 12 ]; then
|
|
DelkaHesla=$ParamDelka
|
|
fi
|
|
|
|
echo "Pocet hesel: $PocetHesel, Delka $DelkaHesla"
|
|
echo
|
|
|
|
local Souhlasek=15
|
|
local SouhlaskaVelka
|
|
SouhlaskaVelka=("B" "C" "D" "F" "H" "J" "K" "L" "M" "N" "P" "R" "S" "T" "V")
|
|
local SouhlaskaMala
|
|
SouhlaskaMala=("b" "c" "d" "f" "h" "j" "k" "l" "m" "n" "p" "r" "s" "t" "v")
|
|
local Samohlasek=5
|
|
local SamohlaskaMala
|
|
SamohlaskaMala=("a" "e" "i" "o" "u")
|
|
|
|
local rot i RAND vystup
|
|
|
|
for rot in $(seq 1 "$PocetHesel"); do
|
|
# Reset
|
|
vystup=""
|
|
# TEXTOVA CAST HESLA
|
|
for i in $(eval "echo {0..$((DelkaHesla - 1))}"); do
|
|
if [ $((i % 2)) -eq 0 ]; then
|
|
# kazdy "sudy" znak je souhlaska
|
|
RAND=$((RANDOM % Souhlasek))
|
|
if [ $((i % 4)) -eq 0 ]; then
|
|
# kazdy "ctvrty" znak je velke pismeno
|
|
vystup="${vystup}${SouhlaskaVelka[$RAND]}"
|
|
else
|
|
vystup="${vystup}${SouhlaskaMala[$RAND]}"
|
|
fi
|
|
else
|
|
# kazdy "lichy" znak je samohlaska
|
|
RAND=$((RANDOM % Samohlasek))
|
|
vystup="${vystup}${SamohlaskaMala[$RAND]}"
|
|
fi
|
|
done
|
|
RAND=$((RANDOM % 10))
|
|
vystup="${vystup}${RAND}"
|
|
RAND=$((RANDOM % 10))
|
|
vystup="${vystup}${RAND}"
|
|
echo "$vystup"
|
|
done
|
|
}
|
|
|