Hlavní stránka › Fóra › Forum pro soutěžící SOČ › Obhajoby – Vysočina › 42 – Kraj Vysočina – obor: 18 › Odpověď na téma: 42 – Kraj Vysočina – obor: 18
7 května, 2020 (10:32 am)
#23089
Matěj Brožek
Host
Dobrý den,
děkuji za dotazy. Odpovědi očísluji.
- Specifická až nepřehledná sémantika je v PHP problém názvu funkcí a použití jejich parametrů. V jednom případě se u funkcí jedná o zkrácení názvu jejího úkonu, v druhém případě je to zase obdobné, akorát s použitím podtržítka ( strpos() x str_replace() atd..). Protože byl PHP vyvíjen v Izraeli, najdeme zde funkce typu jdtojewish(), převádějící Juliánský kalendář na Židovský, nebo hebrev() funkci, převádějící hebrejský text pro čtení zleva doprava. Tyto funkce se samozřejmě mohou hodit, ovšem nastává otázka, mají-li být součástí základní knihovny.
- Otisk hesla (hash) nelze přepočítat zpět na původní heslo. Je to jen jakýsi „otisk“ původního hesla, vypočítaný hashovacím algoritmem. Jsou ale způsoby, jak heslo dostat. Nejznámější z nich je asi Bruteforce algoritmus, který zkouší všechny možné varianty hesel a výsledný hash porovnává, dokud nenajde shodu. Druhým útokem je tzv. Dictionary attack, který využívá znalosti útočníků o již prolomených hesel. Prolomíme-li heslo „ahoj“ tak víme, který hash k němu patří. Takovou znalost si uložíme do nějakého slovníku, odtud název. Narazíme-li pak na stejný hash, nemusíme nic luštit, víme, že dané heslo je „ahoj“. Proto je třeba mít kvůli oběma případům velmi silné heslo, nejlépe kombinaci velkých i malých písmen, čísel a speciálních znaků.
- Vlastní MVC framework byl hlavně pro zlepšení mých dovedností a také pro přehlednost. Vytvořením vlastních funkcí a systému jsem si udělal přehlednou mapu kódu a vím, o co se která část aplikace stará. Na trhu je samozřejmě mnoho řešení (Laravel, Symphony) nabízející velmi pokročilé práce se škálou funkcí. Na tyto systémy bych se chtěl určitě také zaměřit a využít jich při práci na složitějších projektech. Na druhou stranu, pilováním vlastního frameworku mohu docílit rychlejšího a jednoduššího vytváření a rozšiřování aplikací, jelikož se budu v systému orientovat velmi lehce.