NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Simple File Encryptor

Máte v počítači soubor, který obsahuje nějaké citlivé informace (hesla, smlouvy, dokumenty, fotografie, videa, nahrávky nebo něco jiného, co chcete chránit)? Pak tato aplikace je to, co hledáte. Pravda, ochrana vašich souborů nejspíše neobstojí před specialisty tajných služeb, ale vaši přátelé, rodina nebo lidé, se kterými sdílíte počítač, nemají téměř žádnou šanci dostat se k vašim informacím. Ani správci systému, kteří nepotřebují heslo k vašemu Windows účtu, aby se dostali k vašim souborům.

Aplikaci jsem napsal pro vlastní potřebu někdy na jaře 2020, protože jsem nemohl najít na internetu nic dostatečně jednoduchého a spolehlivého, co by plnilo stejnou funkci a zároveň jsem měl díky koronavirovým prázdninám fůru volného času.

Současný stav

Pro účely soutěže jsem aplikaci notně vylepšil. Jedním z hlavních rozdílů je schopnost šifrovat a dešifrovat jakýkoliv typ souborů, včetně binárních (například soubory aplikací Office nebo s příponou .pdf). Dalším rozdílem je přidání přípony .ecp k zašifrovaným souborům, která umožňuje okamžitě rozlišit soubor zašifrovaný od nezašifrovaného, i když třeba mají stejný název. V neposlední řadě byla zvýšena bezpečnost šifrování zašifrováním samotného hesla před jejím použitím.

Plány do budoucna

Pokud budu mít čas a motivaci pokračovat ve vylepšování aplikace, rád bych přidal následující funkce:

  • Možnost vybrat složku a zašifrovat / odšifrovat všechny soubory v ní najednou
  • Nastavit souborům s příponou .ecp nějakou ikonu, která by se u nich zobrazovala v průzkumníkovi souborů
  • Umožnění dešifrování souboru s příponou .ecp pouhým jeho otevřením a zadáním hesla do vyskakovacího okna
  • Hromada dalších věcí, na které si teď nevzpomínám

Jak to funguje

Aplikace šifruje soubory na principu vylepšené Vigenèrovy šifry. Ta funguje na principu sčítání znaku v šifrovaném textu a hesle. Rozdíl mezi obyčejnou Vigenèrovou šifrou a tou použitou spočívá v tom, že nejsou kódovány jednotlivé znaky, ale jednotlivé bajty. Soubor je (postupně) přečten jako série bajtů (číslo 0 až 255) a následně se do takovéto formy převede i zadané heslo. Následně se pouze sečte první bajt souboru s prvním bajtem hesla a výsledek přepíše první bajt souboru. Heslo je zopakováno tolikrát, aby mělo stejnou délku jako soubor. Při dešifrování je postup stejný, ale namísto sčítání bajtů se bajty odečítají.

Vzhledem k tomu, že původní heslo, ani jeho otisk (hash) se do zašifrovaného souboru neukládají, je možné pro dešifrování použít jakékoliv heslo, jelikož aplikace nepozná, zda je správné či špatné. Důsledkem použití špatného hesla je však nečitelný a poškozený soubor. Někteří toto mohou považovat za výhodu, jiní za nevýhodu.

Tvůrci

  • 8-) Jan Štěch (já)

Programovací jazyky

Aplikace je naprogramována v jazyce C# a využívá technologii WinForms.

Lidské jazyky

Aplikace je anglicky, avšak pochopit její fungování by nemělo být těžké ani pro ty, kteří sami anglicky neumí.

Hodnocení poroty

Tento projekt se účastnil soutěže ITnetwork summer 2020.

Porotce Bodů Hodnocení
Zdrojákoviště C# .NET - Okenní aplikace Windows Forms
David Čápka
8.5 Program dělá to, co se od něj očekává a dělá to dobře. Zajímavé je, že se nebojí rovnou smazat původní soubor a nahradit jej zašifrovanou kopií, je tam ale potvrzení a zajistí se tím, že bude opravdu jen zašifrovaný, takže proč ne. Určitě by bylo zajímavější použít nějaký skutečný šifrovací algoritmus, tyhle substituční šifry jsou spíše takové akademické hříčky, binárky v sobě mají běžně nějaké známé sekvence hlaviček pro operační systém, které obsahují i ASCII texty, takže teoreticky není problém frekvenční analýzou přijít na heslo. Samozřejmě to prakticky nikdo neudělá, bylo by k tomu potřeba hodně znalostí a času a ty i zmiňuješ, že se jedná spíše o rodinné využití. Při dešifrování by se mělo zobrazovat asi jiné potvrzení, které by vysvětlovalo, co se může stát. Jinak k tomu asi nemám výhrad, kdybys to chtěl nějak výrazněji propagovat, udělal bych hezčí a jednodušší UI.
Zdrojákoviště C# .NET - Okenní aplikace Windows Forms
Samuel Hél
8 Aplikace funguje správně, jak by měla. Její ovládání je jednoduché, tak to může bez problému využít i naprostý laik. Líbí se mi funkce smazání souboru, který bude zašifrován, aspoň nezůstane nezašifrovaná kopie souboru. Co se týče bezpečnostního algoritmu, tak si tím nejsem úplně jistý. Taktéž je velmi špatné, pokud někdo bude chtít dešifrovat soubor se špatným heslem. Soubor se poté špatně dešifruje, bude nečitelný (OK), jenže původní majitel se k původním datům už nedostane. Pokud tedy nemá zálohu, tak je jeho soubor navždy ztracen. Tento systém je však dobrý, pokud by někdo dělal Brute-force útok. Pro domácí použití je program asi vhodný, ale dal bych si pozor na tu kopii.
Zdrojákoviště C# .NET - Okenní aplikace Windows Forms
Michal Čápka
8 Jednoduchá, intuitivní aplikace, která plní svoji funkci. Určitě si dokážu představit, že bych pro ni já sám našel využití.

Galerie

Program byl vytvořen v roce 2020.

 

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 13x (567.26 kB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

Všechny články v sekci
Zdrojákoviště C# .NET - Okenní aplikace Windows Forms
Program pro vás napsal Jan Štěch
Avatar
Uživatelské hodnocení:
Ještě nikdo nehodnotil, buď první!
Autor se věnuje programování v PHP a vývoji webových aplikací, současně se snaží zdokonalovat v jazyce C#
Aktivity