From e646a2e308f8d835389da034aafbfa4034d2b185 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Varko=C4=8Dek?= Date: Wed, 19 Aug 2026 13:58:48 +0200 Subject: [PATCH] =?UTF-8?q?Hesgenk2=20jako=20bash=20funkce=20+=20=C3=BApra?= =?UTF-8?q?va=20readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bashrc.d/35_hesgenk2.sh | 103 +++++++++++++++++++++++++++++++++++++++++++++++ README.md | 8 ++++ 2 files changed, 111 insertions(+) create mode 100644 .bashrc.d/35_hesgenk2.sh diff --git a/.bashrc.d/35_hesgenk2.sh b/.bashrc.d/35_hesgenk2.sh new file mode 100644 index 0000000..732c706 --- /dev/null +++ b/.bashrc.d/35_hesgenk2.sh @@ -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 +} + diff --git a/README.md b/README.md index 5b8ecde..c041d17 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,14 @@ X-KDE-Username= * mman udělá ctrl+c na dané konzoli a vypíše manuálovou stránku * cman zruší manuálovou stránku, vyčistí konzoli a spustí na ni termclock.sh +### 35_hesgenk2.sh + +Default: Zapnuto + +Jednoduchá konverze webu na script a ze scriptu do bash funkce. Generuje hesla která jsou v K2 běžná - 12 znaků + 2 číslice v základku + + * hesgenk2 + ### 40_notes.sh Default: Zapnuto