Diskuze: prosím, těžká úloha na šifrování
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Ahoj, neviem veľmi o čo si sa v kóde snažil, ale v texte sa píše, že
šifrovať máš len písmená anglickej abecedy 
Dám sem niečo narýchlo napísané snáď to pôjde 
import java.io.*;
class Scratch {
private static final String ENCRYPTED_FILE_PATH = "sifrovany.txt";
private static final String DECRYPTED_FILE_PATH = "otevreny.txt";
private static final String KEY = "ABG";
private static final int ALPHABET_SIZE = 'Z' - 'A' + 1;
public static void main(String[] args) throws IOException {
Scratch s = new Scratch();
s.encryptTextFromFile(KEY, DECRYPTED_FILE_PATH, ENCRYPTED_FILE_PATH);
s.decryptTextFromFile(KEY, ENCRYPTED_FILE_PATH, DECRYPTED_FILE_PATH);
}
public void encryptTextFromFile(String key, String inputFilePath, String outputFilePath) throws IOException {
try (BufferedReader reader = new BufferedReader(new FileReader(inputFilePath))) {
try (FileWriter fileWriter = new FileWriter(outputFilePath)) {
int actualKeyOffset = 0;
char newChar;
String line = reader.readLine();
while (line != null) {
for(Character ch : line.toCharArray()){
if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')){
newChar = (char) (Character.toUpperCase(ch) + Character.toUpperCase(key.charAt(actualKeyOffset)) - 'A');
fileWriter.write(newChar > 'Z' ? newChar - ALPHABET_SIZE : newChar);
actualKeyOffset = (actualKeyOffset + 1) % key.length();
} else {
fileWriter.write(ch);
}
}
line = reader.readLine();
if(line != null){
fileWriter.write('\n');
}
}
}
}
}
public void decryptTextFromFile(String key, String inputFilePath, String outputFilePath) throws IOException {
//...
}
}
Pre dešifrovanie v metóde decryptTextFromFile len zmeníš dva riadky na
newChar = (char) (Character.toUpperCase(ch) - Character.toUpperCase(key.charAt(actualKeyOffset)) + 'A');
fileWriter.write(newChar < 'A' ? newChar + ALPHABET_SIZE : newChar);
Nakoniec k tomu zisteniu kľúča, neviem aké máš podmienky, ale ak môžeš použiť zašifrovaný a zároveň aj pôvodný text tak stačí ak použiješ logiku z metódy decryptTextFromFile s tým, že riadok z toho súboru prolomit.txt budeš dešifrovať kľúčom ktorý bude tvoj pôvodný text z otevreny.txt.
Ak ti to nepôjde tak kľudne píš, nejako to doriešime alebo vylepšíme

Jediné co mi tam nejde je ten řádek kde je: Scratch s = new Scratch();
jinak se to tváří dobře
To je tak keď nestačí len úplne všetko skopírovať a dať do svojho kódu. Ja mám triedu nazvanú inak než ty. Tak napr. prepíš Scratch na Encryption ako máš ty. Trocha nad tým treba aj porozmýšľať a viacej kódiť a potom sa nezasekneš na takej drobnosti
Zobrazeno 4 zpráv z 4.