# --- 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 }