Diskuze: c# Šifrování textu.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 18 zpráv z 18.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
máš o tom dost skreslené představy.
MD5 není šifra, ale otisk. Výhoda otisku je, že se nikdy nedá převést zpátky (na rozdíl od šifry) a toho se využívá u hesel. Když ti někdo ukradne databázi s hesly, tak se k nim nedostane.
Pracuje se s tím tak, že když se uživatel registruje, tak si do databáze uložíš otisk toho hesla a když se přihlašuje, tak si spočítáš nový otisk toho hesla s kterým se chce přihlásit a porovnáváš jenom otisky.
Na větší texy jsou různé šifry. C# jich má spoustu. Cesarova šifra není vůbec bezpečná. Zvol nějakou šifru, kde máš šifrovací klíč nebo něco. C# na to má nástroje v jmenném prostoru System.Security.Cryptography, tak se podívej do dokumentace co tam jsou za zajímavosti.
Dobře, to chápu.. Tak ještě ale nevím jedno..
Když mám třeba Form s registrací. uživatel zadá heslo a zmáčkne
registrovat. Helo se převede na MD5 otisk a... Kam mám ten otisk uložit abych
ho později mohl porovnávat při přihlašování? Ukládat ho do Textového
souboru se mi zdá špatné a ukládat ho do proměnné... při zavření
programu se smaže.. Takže nevím.
Tohle se obvykle ukládá do databáze. V tomto případě to můžeš mít klidně v souboru. Jen ho ulož třeba binárně nebo ještě ten soubor zvlášť zašifruj.
Ukládat heslo se dá například do konfiguračního souboru aplikace, nebo do nějakého typu textového souboru/xml, samozřejmě pokud bude dostatečně zabezpečené nějakým hashovacím algoritmem (MD5 se už dnes tolik nepoužívá). Ale nějak mně uniká smysl lokální aplikace s přihlašováním a registrací (samozřejmě že existují, ale moc obvyklé to není - autentizace uživatelským jménem a heslem má mnohem větší smysl v aplikacích síťových)
Smysl aplikace v tom moc nehledej.. Já zkouším dělat všechno možné víš. Já se na tom hlavně učím než abych v tom hledal smysl. Teď se jdu pokusit najít nějaký hashovací algoritmus který je teď v módě
Jednoduše máš nějaký proud dat (jinými slovy, dlouhý řetězec), který uložíš tak jak je do souboru. Výhodu to má, že si ho můžeš otevřít, ale nic v něm nepřečteš. Musíš si ho zpětně načíst podle přesné signatury. Jakmile tu signaturu ztratíš, tak už si o ty data ve většině případů přišel (pokud ta struktura není moc složitá).
O práci s binárními soubory jsou zde články: http://www.itnetwork.cz/csharp/soubory
Je to 11. díl
Ještě je možnost uložit to přes PasswordVault přímo do systému, ale pokud vím, tak je to novinka v osmičkách, takže ve dřívějších to nefunguje a taky je to trochu komplikovanější... Kdyžtak informace tady https://msdn.microsoft.com/…rdvault.aspx?… a tady http://stackoverflow.com/…in-windows-8
Nevím, co myslíš tím druhým textovým dokumentem, ale pokud nechceš, aby ti mohl ten soubor s heslem kdokoliv otevřít a změnit, tak ho prostě nějak zašifruj (jak už bylo zmíněno, ne césarovou šifrou, ale nějakou bezpečnější s klíčem, existuje jich opravdu hodně) a heslo získáš při spuštění programu tak, že ten soubor rozšifruješ a vytáhneš si ho od tam.
Ano, to vím. Ale mě jde o to aby ten soubor nemohl nikdo ani otevřít. Protože i když je to zašifrované tak to někdo může otevřít a třeba rozšifrovat v jiném programu. nebo SMAZAT.
No tak administrátor bude mít vždycky možnost otevřít jakýkoliv soubor, s tím prostě programově nijak nehneš. Od toho jsou taky přístupový práva (a hlavně skupiny podle pravomocí - admin, user, guest atd...), aby prostě obyčejnej uživatel nemohl třeba smazat určitej soubor (nebo ho i otevřít, záleží na nastavení). Vzhledem k tomu, že s tím jen blbneš, bych to buď nechal být, nebo se teda poohlédnul po trochu jiném řešení, například to PasswordVault, nebo uložení a autentizace přes server (není to tak těžký) a tak...
Dobře Tak já to nebudu řešit. Ale řekni mi tedy poslední
Existuje program na zamykání souborů. Přetáhneš soubor do programu zahesluješ a soubor je v tom programu ale nikde jinde. To udělaly jak?
No, tohle jsem sice nijak zjišťoval, ale podle mě si ten program ten soubor prvně přesune na nějaký svoje úložiště v počítači (pořád tam je, jen jinde a asi i skrytej) a potom zašifruje s heslem.
Data nikdy nezmizí, to že se z pohledu programu zdá, že s k datům
nedostaneš, tak to ještě neznamená že to nejde
To aby je nikdo nesmazal bych řešil tak, že pokud je někdo smaže, tak se
třeba vytvoří nové defaultní. A proti tomu otevření prosté šifrování
jak tu už psali
Btw. u jakékoliv hry si můžeš smazat polovinu souborů, ale kdo by to řešil?
Zobrazeno 18 zpráv z 18.