HollowByte je zranitelnost typu Denial of Service (DoS) v kryptografické knihovně OpenSSL. Útočník může odesíláním škodlivého payloadu o velikosti pouhých 11 bajtů zaplnit paměť serveru. OpenSSL před ověřením dat vyhradí nepřiměřený blok paměti (až 131 KB). Server pak čeká na data, která nepřišla. Zranitelnost je opravena ve verzích OpenSSL 4.0.1, 3.6.3, 3.5.7, 3.4.6 a 3.0.21.
Ve španělské A Coruñě probíhá GUADEC 2026, tj. letošní konference vývojářů a uživatelů desktopového prostředí GNOME. Videozáznamy přednášek jsou k dispozici na YouTube.
Společnost Collabora ve spolupráci s Valve vyvíjí Holo Core, tj. port Arch Linuxu pro ARM64 procesory (AArch64), který bude pohánět VR headset Steam Frame. Pro testování Arch Linuxu pro AArch64 jsou k dispozici binární balíčky, zdrojové kódy i kontejner pro Docker nebo Podman.
Mikroprocesor Zilog Z80 byl oficiálně uveden na trh před 50 lety, tj. v červenci 1976. Výroba mikroprocesoru skončila v roce 2024.
Výzkumníci ze společnosti ESET objevili 11 zapomenutých UEFI shim zavaděčů, které byly podepsány společností Microsoft, a které umožňují útočníkům obejít ochranu UEFI Secure Boot na většině zařízení. Microsoft je zneplatnil (přidal jejich hash do databáze dbx) v rámci aktualizace Patch Tuesday dne 9. června 2026. Uživatelé Linuxu mohou databází aktualizovat pomocí LVFS. Ověřit zneplatnění zavaděčů lze pomocí skriptu uefi-dbx-audit. Jedná se o CVE-2026-8863 a CVE-2026-10797.
pico-usb-wifi je open source firmware pro Raspberry Pi Pico W, který jej promění v USB Wi-Fi adaptér. Po připojení k počítači se objeví jako zařízení USB CDC-NCM.
Americká společnost Google ze skupiny Alphabet bude muset podle nových požadavků Evropské unie umožnit společnosti OpenAI i dalším konkurentům v oblasti umělé inteligence (AI) a internetových vyhledávačů přístup ke svým službám. Ve svém rozhodnutí o tom včera informovala Evropská komise (EK). Opatření má zajistit dodržování pravidel, jejichž cílem je omezit v EU tržní sílu velkých technologických firem. Google s tím nesouhlasí.
… více »Nové verze webových prohlížečů Chrome a Firefox jsou vydávány každé 4 týdny. Aktuální verze Chrome je 150. Aktuální verze Firefoxu je 152. V březnu bylo oznámeno, že od září přejde Chrome na dvoutýdenní cyklus vydávání verzí. To by znamenalo, že Chrome v číslování verzí Firefox brzy přeskočí. Vývojáři Firefoxu proto také od září přecházejí na dvoutýdenní cyklus vydávání verzí. :-)
Microsoft Comic Chat (Wikipedie), tj. grafický IRC klient z devadesátek, který převáděl konverzace na IRC do podoby komiksových panelů, a který zpopularizoval font Comic Sans, je dnešním dnem open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Byla vydána (𝕏) nová verze 26.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 26.7 je Xenial Xenops. Přehled novinek v příspěvku na fóru.
package dcv4;
public class Zn {
public static void main(String[] args) {
java.util.Scanner jc = new java.util.Scanner(System.in);
System.out.printf("Zadejte n: ");
long a, b = 1011;
int n;
int x = 1;
if (a^b) {
if (b>=0, n>1) {
}
Dekuji za kazdou radu.
a^b, proč to tam je? Asi bys měl procházet číslo b po jednotlivých bitech a podle hodnoty daného bitu pracovat s číslem x.
Mame (b)_10 = (b_p b_(p-1) ... b_1 b_0)_2
Skus sa zamysliet ako zo znalosti: (v dalsom (...) znamena v dvojkovej sustave)
a^(b_p ... b_1) mod n mozno vypocitatJe to vlastne popisane v hinte 3.
Cyklus, ktory zbehne maximalne tolkokrat, kolko je bitov v reprezentacii datoveho typu pre b sluzi zase na to, aby sa dala zistit reprezentacia b v dvojkovej sustave zlava. (Vacsinou sa ide sprava, t.j. od poslednej cislice.)
Tieto dve veci treba dat dokopy a mas program.
Priklad: a^6 mod n, predpokladame, ze datovy typ reprezentujuci 6 ma 4 bity. Preto, 6 je reprezentovane ako 0101. Na zaciatku mame a^(0) mod n = 1. Zistime prvu cislicu 4-bitovej reprezentacie cisla 6: 0: -> pouzijeme postup, ako z a^(0) mod n -> a^(00) mod n V dalsom kroku zistime 2. cislicu: 1: -> pouzijeme postup, ako z a^(00) mod n -> a^(001) mod n 3. cislica: 0: a^(001) mod n -> a^(0010) mod n 4. cislica: 1: a^(0010) mod n -> a^(00101) mod n a mame vysledok.
Snad to aspon trochu pomoze.
Marek
int pocetBitu=Long.toBinaryString(b).length()
Krok 3) Zde je třeba se zamyslet. Zadavatel výslovně zakázal používat řetězec. Přesto jsme schopni zjistit zda je na požadovaném místě binární reprezentace čísla b jednička nebo nula. Pro i-tý bit čísla si jednoduchým výpočtem 2 na i-tou vytvořte bitovou masku a jejich ANDem (operace & ) zjistíte zda je tam jednička nebo ne.
2a) je jednička? Pak podle popisu provede násobení x číslem a (avšak v modulu zn) tedy
x = (x*a)%zn;
2b) je nula? neděláme nic
2c) ještě musíme ošetřit stav 's', a při rychlém pohledu do řetězce v příkladu je jasné, že znak 's' následuje za každým znakem, kromě posledního. Tedy pokud pracujeme s jiným než posledním znakem, provedeme navíc krok x na druhou opět v modulu zn
x = (x*x)%zn;
Když takto projdeme všechny bity čísla b, máme v x uložený výsledek.
---
Algoritmus Vám samozřejmě mohu poslat, ale samotné řešení bez jeho pochopení Vám v dlouhodobém výhledu stejně nepomůže.
ahadiel@centrum.cz )
public class Mocnina {
public static void main(String[] args) {
java.util.Scanner in = new java.util.Scanner(System.in).useLocale(java.util.Locale.US);
for (; ; ) {
System.out.println("Zadej dvě celá čísla: ");
int m = in.nextInt();
int n = in.nextInt();
int mocnina = 1;
int nn = n;
int mm = m;
while (nn > 0) {
if (nn % 2 == 1) {
mocnina = mocnina * mm;
}
mm = mm * mm;
nn = nn / 2;
}
System.out.println(m + " na " + n + " = " + mocnina);
}
}
}
Ovsem nevim si rady s temi bity, zbytkovou tridou Zn. Celkove se mi zda, ze je to celkem neumerne nasim schopnostem, jelikoz 90% tridy v Jave pred 2 tydny teprve zacalo, vcetne me. Mam ale vybornou knizku, tak se snad moje schopnosti brzy rozsiri.
Moc Vám děkuji za ochotu.
public static long MetodaOpakovanychCtvercu(long a, long b, long zn){
// zjistíme počet bytů mocnitele (parametr b)
int pocetBitu = Long.toBinaryString(b).length();
// inicializace výsledkové proměnné
long x = 1;
// procházení čísla
for(int i=pocetBitu-1; i>=0; i--){
// Spočítáme bitovou masku pro i-tý bit
long mask = Math.round(Math.pow(2, i));
/* je-li i-tý bit čísla b 1 provedeme operaci pro znak '1'*/
if((b & mask) == mask )
x = (x*a)%zn;
/* pokud se nejedná o poslední bit, provedem operaci znak 's' */
if(i > 0)
x = (x*x) % zn;
}
return x;
}
long mask = Math.round(Math.pow(2, i)); long mask = 1l << i;
tohle jsme také dělali.
Tiskni
Sdílej: