Byl vydán Debian 13.5, tj. pátá opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.14, tj. čtrnáctá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
CiviCRM (Wikipedie) bylo vydáno v nové verzi 6.14.0. Podrobnosti o nových funkcích a opravách najdete na release stránce. CiviCRM je robustní open-source CRM systém navržený speciálně pro neziskové organizace, spolky a občanské iniciativy. Projekt je napsán v jazyce PHP a licencován pod GNU Affero General Public License (AGPLv3). Český překlad má nyní 45 % přeložených řetězců a přibližuje se milníku 50 %. Potřebujeme vaši pomoc, abychom se dostali dál. Pokud máte chuť přispět překladem nebo korekturou, přidejte se na platformu Transifex.
Další lokální zranitelností Linuxu je ssh-keysign-pwn. Uživatel si může přečíst obsah souborů, ke kterým má právo ke čtení pouze root, například soubory s SSH klíči nebo /etc/shadow. V upstreamu již opraveno [oss-security mailing list].
Singularity (YouTube) je nejnovější otevřený film od Blender Studia. Jedná se o jejich první 4K HDR film.
Vyšla hra Život Není Krásný: Poslední Exekuce (Steam, ProtonDB). Kreslená point & click adventura ze staré školy plná černého humoru a nekorektního násilí. Vžijte se do role zpustlého exekutora Vladimíra Brehowského a projděte s ním jeho poslední pracovní den. Hra volně navazuje na sérii Život Není Krásný.
Společnost Red Hat představila Fedora Hummingbird, tj. linuxovou distribuci s nativním kontejnerovým designem určenou pro vývojáře využívající AI agenty.
Hru The Legend of Zelda: Twilight Princess od společnosti Nintendo si lze nově díky projektu Dusklight (původně Dusk) a reverznímu inženýrství zahrát i na počítačích a mobilních zařízeních. Vyžadována je kopie původní hry (textury, modely, hudba, zvukové efekty, …). Ukázka na YouTube. Projekt byl zahájen v srpnu 2020.
Byla vydána nová major verze 29.0 programovacího jazyka Erlang (Wikipedie) a související platformy OTP (Open Telecom Platform, Wikipedie). Detailní přehled novinek na GitHubu.
Po zranitelnostech Copy Fail a Dirty Frag přichází zranitelnost Fragnesia. Další lokální eskalace práv na Linuxu. Zatím v upstreamu neopravena. Přiřazeno ji bylo CVE-2026-46300.
Sovereign Tech Agency (Wikipedie) prostřednictvím svého fondu Sovereign Tech Fund podpoří KDE částkou 1 285 200 eur.
tajny-text > quY93vna5EMPb3q9Puura
quY93vna5EMPb3q9Puur > tajny-text
Řešení dotazu:
sed -re "s/tajny-text/quY93vna5EMPb3q9Puur/" sed -re "s/quY93vna5EMPb3q9Puur/tajny-text/"nz
V duchu hesla: na každú otázku existuje jednoduchá, správna a nepoužiteľná odpoveď.
Tyhle domácí úkoly… Podle mě to postrádá smysl, pokud je člověk nevyřeší nějak samostatně.
Není jasné, o jakou šifru se jedná. Takže Bash může umět třeba tohle:
$ string2base64 tajny-text dGFqbnktdGV4dA== $ string2base64 tajny-text | base64 -d tajny-text
Implementace string2base64 se dá klidně udělat à la prase — například následující věc je v čistém Bashi bez dalších procesů. Ale neumí to ani náhodou Unicode a dokonce to neumí správně ošetřit nulový byte. Ale jinak to téměř funguje. Specifikace je třeba tady. Dekodér z base64 zpět do plaintextu si pozorný čtenář zajisté dovede sám naimplementovat za cvičení, podobně jako drobnou úpravu, která by string2base64 umožnila zpracovávat stream neomezené délky. Výkonnostních optimalizací se tam nabízí tři spousty a půl.
#!/bin/bash
# Creates a global mapping from ASCII bytes 1..255 to their binary codes.
# For example, 'a' (i.e., ${#BYTE2CODE['a']}) maps to '01100001'.
initcache() {
if ((255 != "${#BYTE2CODE[@]}")); then
declare -Ag BYTE2CODE
local -i i
for ((i = 1; i < 256; ++i)); do
eval BYTE2CODE[$\'\\x"$(printf '%x' "$i")"\']="$(code2bin "$i")"
done
fi
}
# Translates an ASCII byte in decimal notation into an 8-digit binary literal.
# For example, argument '97' (otherwise known as 0x61 or 'a') yields '01100001'.
code2bin() {
local -ai bits=(0 0 0 0 0 0 0 0)
local -i number="$1"
local -i idx=${#bits[@]}
local -i i
while ((number && idx)); do
bits[--idx]='number % 2'
((number /= 2))
done
for ((i = 0; i < ${#bits[@]}; ++i)); do
echo -n "${bits[i]}"
done
}
# Translates a string into a binary representation suitable for base64 encoding.
# The first output line is the number of padding characters (0 to 2).
# Each subsequent line is a binary representation of 3 bytes or 4 base64 digits.
# For example, argument 'aa' yields '1' (1 padding symbol) on the first line and
# '011000010110000100000000' (24 bits of data) on the second line.
string2code() {
local -ri equals=$(((3 - ${#1} % 3) % 3))
local -i i
local buffer="$equals"
for ((i = 0; i < ${#1}; ++i)); do
if ((!(i % 3))); then
echo "$buffer"
buffer=
fi
buffer+="${BYTE2CODE[${1:i:1}]}"
done
echo -n "$buffer"
for ((i = 0; i < equals; ++i)); do
code2bin 0
done
echo
}
# Translates 6 bits (a string of '0' and '1' characters) to a base64 digit.
# For example, argument '100111' (39 in decimal notation) yields 'n'.
bin2basechar() {
local -ri code=2#"$1"
local -a chars
if ((code < 26)); then
chars=(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z)
echo -n "${chars[code]}"
elif ((code < 52)); then
chars=(a b c d e f g h i j k l m n o p q r s t u v w x y z)
echo -n "${chars[code - 26]}"
elif ((code < 62)); then
chars=(0 1 2 3 4 5 6 7 8 9)
echo -n "${chars[code - 52]}"
else
chars=(+ /)
echo -n "${chars[code - 62]}"
fi
}
# Translates its first (and only) argument into base64.
# For example, argument 'doprdele' yields 'ZG9wcmRlbGU='.
string2base64() {
local -a fragments
local fragment
local line
local -i equals
local -i i
local chars
initcache
string2code "$1" | {
read equals
while read line; do
echo -n "$chars"
fragments=("${line:0:6}" "${line:6:6}" "${line:12:6}" "${line:18:6}")
chars=
for fragment in "${fragments[@]}"; do
chars+="$(bin2basechar "$fragment")"
done
done
if ((equals)); then
echo -n "${chars:0:-equals}"
for ((i = 0; i < equals; ++i)); do echo -n '='; done
else
echo -n "$chars"
fi
echo
}
}
Pár příkladů, kde k zakódování používám výše uvedenou funkci string2base64 a k dekódování slouží base64 z coreutils:
$ string2base64 zzz$'\xa' enp6Cg== $ string2base64 'bla bla bla'$'\xa' YmxhIGJsYSBibGEK $ string2base64 zzz$'\xa' | base64 -d zzz $ string2base64 'bla bla bla'$'\xa' | base64 -d bla bla bla
(Konce řádků jsou tam^^^ samozřejmě jen tak bezdůvodně, because we can.) A tady ještě drobný test, jestli to vůbec něco rozumného dělá:
for i in x{a..z} {A..Z}y a{0..9}b; do
echo -n "${i} "
string2base64 "$i" | base64 -d
echo
done
Já přece netvrdím, že Base64 je šifra. Jenom jsem chtěl (zdlouhavě, protože proč ne) naznačit, že k řešení úkolu s opravdovou šifrou je lepší začít od něčeho mnohem jednoduššího, co se taky zabývá jednotlivými bity.
Je potřeba rozlišovat mezi šifrou a kódem. Rozdíl je ve velikosti prostoru „klíčů“.
Příklad: AES256 s klíčem 0 je kód. AES256 (bez dalších upřesnění) je šifra.
Base64 je kód. Neslouží k utajení informací, prostor „klíčů“ má velikost asi tak 1 a nemá to žádné z obvyklých vlastností, které se u šifer považují za výhodné (například podobnost náhodným datům atd. atp.).
A ďalej čítam že BASE64 má nenulovú dĺžku, pričom nie je šifra.
Tenhle tvůj výrok je fakt zoufalá kravina. Nic takového jsem nikde nenapsal. Ty sis prostě vymyslel náhodný žvást, který mi tu podsouváš. O nulové délce něčeho (ať už přirození, klíče nebo hůlky) jsem nic nepsal. Takže si to zkus přečíst ještě jednou. To někdy pomůže, pokud jde o porozumění psanému textu, a je to lepší než vymýšlet cosi, co v mém textu vůbec nebylo. 
Tvé fantazie o tom, že Base64 je šifra, jsou jakýsi chabý pokus o trolling nebo slovíčkaření, jehož smysl mi uniká. Mezi kódem a šifrou je opravdu hodně velký rozdíl, jak už tu správně zmínili jiní. Podle tvé ideologie je ASCII nebo UTF8 taky šifra, protože za šifru považuješ nejspíš cokoliv. (Přitom mezi ASCII a Base64 není vůbec žádný rozdíl, pokud jde o „zabezpečení“ a prostor klíčů.)
Když má prostor klíčů velikost 1, není to šifra. Potvrzuji a podtrhuji sám sebe ještě jednou, zatímco ty sám sebe dál ztrapňuješ nekonzistentními nesmysly. 
Není problém nepochopit napoprvé psaný text. Problém je nepochopit ho ani napodruhé, což jsi právě předvedl, a pořád si nepřiznat chybu. Vypadá to, že se zase snažíš (a zdaleka to není v místních diskusích poprvé) bezdůvodně trollovat, slovíčkařit a opakovat do omrzení nesmysly.
Tvrzení, že Base64 je šifra, by mohl být skoro i vtip — jenže ono se zdá, že to myslíš fakt vážně. 
Mám tomu rozumieť tak, že sa mýlim keďže existuje nenulový kľúč ktorý má nulovú dĺžku?Ne, tak tomu rozumět nemáte. Nic takového neplyne z žádného komentáře, který tady byl napsán.
Neučil som sa z učebníc VUML aby mi takéto blbosti dávali zmysel.Blbosti tady zatím vymýšlíte jen vy – přečtete si nějaký komentář, vůbec ho nepochopíte, vezmete z nějak některá slova, vhodíte do osudí s dalšími slovy, zamícháte a vypadne z toho vaše „odpověď“. Jak už jsem vám radil, pro začátek zkuste přemýšlet o tom, zda „klíč“ a „velikost prostoru klíčů“ je opravdu to samé. Až dojdete k tomu, že není, budete na dobré cestě pochopit, o čem se tu diskutuje.
Aha. Takže jsi nepochopil rozdíl mezi nulovým klíčem (nebo obecně libovolným předem daným klíčem, třeba se samými jedničkami) a klíčem nulové délky. Jinými slovy, nepochopil jsi psaný text. Už zase. Zkus si to přečíst ještě jednou, tentokrát asi počtvrté.
Mimochodem, tvé tvrzení, že kráva je pes, považuji za nepravdivé. To uvádím jen pro ilustraci, jak to vypadá, když si někdo vymýšlí bláboly, které jsi netvrdil, a předhazuje ti je, jak se mu to hodí. Tohle je tvůj styl "debaty".)
Dokážeš bez překrucování interpretovat výše uvedené jednoduché věty, nebo to mám ještě nějak podrobněji vysvětlit? 
Kde přesně tvrdím, že "nenulový klíč může mít nulovou délku"? Prosím citaci. Opravdu už to s těmi výmysly přeháníš. Nikde jsem nic takového netvrdil.
Starověké pokusy o šifry jsou v tomto kontextu zcela off-topic, takže na ně nebudu nijak reagovat.
Base64 není šifra. Účelem Base64 není (a nikdy nebylo) utajení dat. Je na tom snad něco nepochopitelného?
Ale keď to má nenulový kľúč, tak je to šifra.To tady nikdo netvrdil, kromě vás. Naopak např. v komentáři 33 Andrej výslovně uvádí AES256 s nenulovým klíčem („samé jedničky“), a tvrdí, že to není šifra.
A špeciálne o base64 tvrdíš že je to má nenulový kľúčNe, to nikdo nikde nepsal, to je jen další váš výmysl.
nenulový kľúč ktorý určuje že je to šifraA další váš výmysl. Ale možná to bude jenom tím, že jste stále ještě nepochopil rozdíl mezi pojmy „klíč“ a „prostor klíčů“. Konkrétní PIN k vaší platební kartě, třeba 1234, je „klíč“. Když někdo ten klíč (PIN) zná, může s tou kartou platit nebo s ní vybírat peníze. Ten váš „nulový klíč“ by byl PIN 0000. „Prostor klíčů“ je seznam všech možných klíčů – takže když vím, že platební karta má čtyřmístný dekadický PIN, vím, že prostor klíčů je 0000, 0001, 0002, … , 9999, tedy celkem 10 000 možných klíčů – velikost prostoru klíčů (PINů) platební karty je tedy 10 000. Už to chápete?
Andrej tvrdil že keď to má nenulový kľúč, tak je to šifra. A keď to má nulový kľúč, tak je to kódNe, netvrdil. Tahle nesmyslná tvrzení se poprvé objevují ve vašem komentáři, my vám je pořád vyvracíme a vy je pořád opakujete.
Pričom base64 má podľa neho nenulový kľúč ale nie je to šifra.Ne, to také nikde netvrdil. To akorát vy pořád nechápete rozdíl mezi „klíčem“ a prostorem klíčů“. BASE64 žádný klíč nemá, takže by se s přimhouřením očí dalo tvrdit, že prostor klíčů má velikost 1. Což také napsal Andrej.
Nič z toho som si nevymyslel, sú to jeho veľavravné tvrdenia.To jste si vymyslel. Kdyby to napsal v diskusi někdo jiný, můžete na příslušný komentář odkázat, můžete jej citovat. Problém je v tom, že jste hlupák a zaměňujete konkrétní klíč a prostor klíčů, přestože jste už byl mnohokrát upozorněn, že to není to samé. Vy se ale stále tváříte, že jste tuto informaci nezaznamenal, a stále dokola opakujete ty svoje nesmysly.
Příspěvek, na který odkazuješ, netvrdí ani náhodou, ani v náznaku a ani omylem nesmysly, které tady omíláš. Zase jsi nepochopil psaný text. Zkus si ten příspěvek přečíst třeba desetkrát — i když teď už pochybuju, že to pomůže.
Ani po desáté iteraci jsi nevzal v potaz, že velikost prostoru klíčů (vyplývající například z délky klíče) a hodnota konkrétního jednoho klíče (například 0, tedy 256 nulových bitů v případě AES256) jsou dvě naprosto odlišné záležitosti, které se nedají míchat dohromady.
Zkus se pro začátek naučit jednoduché tvrzení: Base64 není šifra. To je opravdu všechno, co je třeba vědět, zejména pokud někdo není schopen rozlišovat mezi délkou klíče, hodnotou klíče a velikostí prostoru klíčů.
user@stroj:~$ echo tajny-text | xxd -p 74616a6e792d746578740a user@stroj:~$ echo 74616a6e792d746578740a | xxd -r -p tajny-textJinými slovy, nejde ti o šifru jako takovou, ale o utilitu, co ti udělá z libovolného (třebas i binárního) řetězce řetězec textový, jaký se pak dá obrábět přes další utility. Alespoň tedy já to tak v bashových skriptech dělám. Jestli se pak takový řetězec prožene přes base64, openssl, nebo něco jiného, je už pak naprostý šumák.
Protože onu zjevnou a zcela správnou interpretaci zadání už předvedl Jenda, ostatní se pochopitelně pokusili příslušné zadání nějak domyslet a dodefinovat, aby nebylo tak absurdně triviální.
V tom nevidím nic špatného.
Tiskni
Sdílej: