parent
2db918a0a7
commit
e646a2e308
@ -0,0 +1,103 @@
|
||||
# --- 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
|
||||
}
|
||||
|
||||
Loading…
Reference in new issue