Diskuze: šifrování
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 13 zpráv z 13.
//= 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.
Jasně, že to jde. Jen to vyžaduje mírně pokročilejší znalosti,
konkrétně bys měl umět pracovat se streamy, aby tvůj program nepadl, až
narazí na velké soubory.
Zajímalo by mě, jak přesne to šifruješ a jak to má fungovat (čeho chceš
dosáhnout).
Předpokládám, že používáš asymetrickou šifru asi RSA pro klíč a AES
pro obsah?
Každopádně měj na paměti, že pokud to chceš dělat správně, není to
jen o šifrování. Také budeš potřebovat takové lahůdky jako třeba HMAC a
porovnání polí za konstantní čas...
Pokud tě zajímá šifrování pomocí jednoho sdíleného hesla, napsal jsem knihovnu pro AES. Je open-source, tak se můžeš inspirovat, je to celkem neprůstřelná šifra.
Děkuji moc za informace. Je to jen nápad a chtěl bych dosáhnout svojí vlastní šifrace v celku bez použití stávajících klíčů (ani nevím zda to jde ). Pro příklad co se týká stringu jako věty to zatím funguje v podstatě pomocí ASCII tabulky kdy se převede písmenu no bináru přičtou se hodnoty a vyplyvne to znak. Tedy př A = 65 = 1000001, Dále proběhne interní privátní operace, která která pro příklad písmene A, přičte a odečte určité parematry a vyhodnotí to třeba jako 100101= 37 = % v ASCII.
teďkon prosím o opravu kdybych se ptal na nesmysl. Pokud se dají převádět písmena pomocí ASCII tak musí jít přenést i soubor do Bináru pokud ano pak už bych chtěl jen v 1 PC na stejné síti nastavit komunikaci s touto šifrací odeslat do 2 PC kde bude dešifrována a objeví se třeba obrázek ve složce SHARE.
Kdybych mluvil úplný nesmysl tak prosím jen o nakopnutí na správnou cestu jak jsem říkal prostě jen nápad (ve sprše )
Díky moc
To není úplně šifrování a určitě to není bezpečný přenos. Sice
tím případnému útočníkovi hodíš klacek pod nohy, ale není nemožné
přijít na to, jak to rozšifrovat.
Každopádně zpět k tvému dotazu. Jde to, nemůžeš používat jen písmena,
poněvadž ne všechny soubory jsou čistě ASCII text. Místo toho přečteš
ten soubor jako bytové pole pomocí File.ReadAllBytes("path")
a
potom na každém z těch bytů provedeš stejnou operaci, jako provádíš s
těmi písmeny, uložíš je ve stejném pořadí a tadá, máš "zašifrované"
pole bytů, které můžeš opět normálně uložit jako soubor pomocí
File.WriteAllBytes(bytovépole)
. No a potom to dostaneš na jiný
PC a "rozšifruješ".
Pár věcí, na které bys neměl zapomenout:
CryptoStream
, ale to
je docela overkill, normálně si prostě dávej pozor na příliš velké
soubory Děkuji moc, doufám že tuto aplikaci roztáhnu na tolik že už to nebude
jen klacek, ale pořádná kláda .
Jinak rozhodně to neplánuji nasazovat ve firmě nebo v častěji napadaných
prostorech je to jen kvůli selflearningu a tomu abych programoval a učil se
nové věci.
ještě bych se zeptal jestli existuje dokumentace jak nastavit tuto aplikaci aby tedy komunikovala mezi 2. PC.
Jinak ještě jednou děkuji moc
Tohle mi nedělej... Napil jsem se kafe a při čtení slovního obratu
Windows buď umře, nebo tvou appku zabije
jsem si smíchy poprskal monitor...
S tímto toho dosáhneš jen velmi obtížně, vůbec se to nevyplatí. Pokud
nejsi expert na kryptografii, bude to vždy jen klacek.
Jde o to, kde ta PC jsou. Pokud jsou ve stejné síti, není to nijak extra
složité a nebudeš potřebovat další server. V zásadě bys na počítači,
co bude posílat data otevřel TCP port, počítač, co by je přijímal by se
pomocí socketu připojil na ten port jako klient a potom by se ty počítače
nějak domluvily. Pochopitelně musíš znát IP toho, co funguje jako server,
aby ses na něj mohl připojit.
Pokud jsou v různých sítích, nebo nechceš řešit, co je právě server a
co je právě klient, můžeš mít ještě úplně jiný počítač, třeba i
úplně mimo tvou síť, který bude ta data přenášet za tebe (PC se
připojí na server, řekne mu, komu chce poslat data a server mu je nechá na
vyzvednutí). Tady bys ale musel řešit bezpečnost, protože by to probíhalo
přes vnější, zlý Internet. Měl bys tudíž použít zabezpečený přenos
(skutečný, ne tvůj pokus), nejjednodušší by bylo HTTPS. Ale tohle je už
trochu vyšší dívčí popravdě, protože si musíš s tím zabezpečením
skutečně vyhrát.
Myslím, že chceš dělat to první, na Googlu hledej klíčové slovo
socket. Na YouTube jsou docela dobré tutoriály.
Michal Štěpánek Díky, že jsem mým skvělým doslovným překladem pobavil
Ok Děkuju moc za rady a je to přesně jak píšeš rozhodně se nechci
pachtit přes venkovní připojení Obě PC budou ve stejné síti. I když
mohlo by být lákavé použít certifikát na prostupnost, ale se svýma
zkušenostmi budu rád když dosáhnu komunikaci mezi 2 PC pomoci vlastní
šifrace. Asi se nevyhnu volání o pomoc zde na webu takže třeba uvidíš i
pokroky .
Ještě jednou díky.
Upřímně bych ti doporučil (kromě toho, abys používal skutečné šifrování ), abys postupoval takto:
Ok, chápu že to asi zní dost nesmyslně, nebo možná trochu zbytečně, ale mám chuť to zkusit. Člověk aspon pochopí jak to funguje a muže se postit do něčeho s realnou kryptografii. Někde šifrování začalo.
No... úplně ne. Skutečná kryptografie je jiná než vytváření
vlastních operací, realita je spíš o tom, že víš, kdy a jak použít
jakou šifru, kterou už udělal někdo před tebou a ideálně jsi od samotné
šifrace na nízké úrovni odstíněn.
Začátek to není špatný, jen tě chci přesvědčit, že pokud nejsi
geniální matematik, tvá šifra nemá šanci obstát v reálném světě.
Šifrování obyčejného textu umožňuje i nástroj na stránkách http://retezce.jednoduse.cz/
Zobrazeno 13 zpráv z 13.