Pár hónap tanulmányi szünet
Posted by Tóth Viktor in .NET on 2012. Április 19.
Ahogy az elmúlt pár hónapban egyre nőtt az “ezt el kellene olvasnom/azt meg kellene ismernem” listám, arra a következtetésre jutottam, hogy több időt kell fordítanom a tanulásra. Ezt sajnos csak úgy tudom kivitelezni, ha pár hónapra felhagyok a blog írásával, és egy intenzív tanulási periódusba kezdek. Addig is sok tanulságokkal teli szívást, zseniálisan egyszerű ötletet [...]
A szimmetrikus titkosítás megvéd? Nem, ha rosszul használod!
Posted by Tóth Viktor in .NET, Security, WCF on 2012. Április 9.
(devportálos olvasóknak: a cikk a sok forráskód miatt a WordPress-es oldalon átláthatóbb) Az előző, szimmetrikus titkosító algoritmusokról szóló cikkben megígértem, hogy a gyakorlatban is kipróbálunk egy támadást egy szerver ellen. Ebben a támadásban a Padding Oracle Attack-et fogjuk használni, amelyik egy zseniálisan egyszerű ötleten alapszik, mégis, két évvel ezelőtt igen nagy meglepetést okozott, amikor egy [...]
Szimmetrikus titkosító algoritmusok
Posted by Tóth Viktor in .NET, Security on 2012. Április 6.
Az előző cikk folytatásaként HTTPS protokolt szeretnénk majd használni a kommunikációhoz. Ehhez azonban jobban meg kell ismerni a HTTPS protokolt, amihez pedig tisztába kell lenni a kriptográfia alapelemeivel. E célból kósolunk most bele a szimmetrikus titkosító algoritmusokba. Naív titkosírás Titkosírással kódolt üzeneteket már évezredek óta küldözgetnek egymásnak emberek. Ezek természetesen adódó, és egyszerű módszerek voltak, [...]
Azure + Relay Binding + HTTPS mutual authentication? Talán egyszer… (I. rész)
Posted by Tóth Viktor in .NET, Azure, WCF on 2012. Március 28.
Nemrég felmerült egy igény, miszerint egy készülő REST stílusú szervizt esetleg Azure AppFabric Service Bus Relay szervizen keresztül kellene megjeleníteni. Ez nem tűnt nagy problémának, hiszen a WCF-nek köszönhetően, egy-két apróság mellett, csak a WebHttpBinding-ot kell WebHttpRelayBinding-ra kicserélni. Legalábbis elviekben. Ennek a cikknek nem az Azure Relay szerviz kritizálása a célja. A probléma áttekintése inkább [...]
Korai inicializáció C#-ban
Posted by Tóth Viktor in .NET on 2012. Március 25.
C# esetében, ha egy típus működéséhez valamiféle inicializációra van szükség, akkor azt a típus statikus konstruktorába tehetjük. Ígéret szerint a típus első használatakor, vagy némi idővel a használata előtt a statikus konstruktor kódja lefut. Mi van azonban akkor, ha egy olyan inicializációs kódot szeretnénk, ami lefut az assembly-nk bármely más kódja előtt? Vegyük például a [...]
Megoldás – Minifeladatok III.
Posted by Tóth Viktor in .NET, Minifeladat, Optimalizáció on 2012. Március 22.
A III-as számú minifeladat az érték és referencia típusok rendezési ideje közötti különbséget vizsgálja, 20 millió adat, és a quick sort algoritmus segítségével. Egy quick sort algoritmus húszmillió elem rendezése közben átlagos esetben körülbelül kétszázötvenmillió elemmozgatást végez. Ezek alapján, 32 bites rendszernél referencia típus esetében 1 gigabyte (2 giga 64 biten) adatot kell mozgatni, még [...]
Minifeladatok III.
Posted by Tóth Viktor in .NET, Minifeladat, Optimalizáció on 2012. Március 17.
Az előző két minifeladat (Minifeladatok I és Minifeladatok II) az érték típusok tulajdonságairól szólt. Most az érték típusok talán legismertebb tulajdonságát vizsgáljuk meg közelebbről egy példán, mégpedig azt, hogy az érték típus reprezentációja érték szerint másolódik egyik változóról a másikra, míg a referencia típus esetében a reprezentációra egy hivatkozást tárolnak a változók, és csak a [...]
Megoldás – Minifeladatok II.
Posted by Tóth Viktor in .NET, Minifeladat on 2012. Március 15.
Ez a cikk a Minifeladatok II megoldását tárgyalja. A példában DoThatCalculation() és a DoFurtherCalculation() viselkedésében furcsa kettősség figyelhető meg. Bár mind a két metódus egy IIncrementable típust vár, a program kimenete alapján azt látjuk, hogy a DoFurtherCalculation() visszahat a hívásnál átadott értékre, míg a DoThatCalculation() nem: A jelenség oka A .NET interfészen keresztül csak referencia [...]
Minifeladatok II.
Posted by Tóth Viktor in .NET, Minifeladat on 2012. Március 12.
Ez a feladat szintén az érték típusokról szól. Bár a feladatban a SuperValue nem Immutable, most nem ez okoz problémát. A kérdések tehát: Mit ír ki a program? Miért? Hogy lehetne átírni csak a “var value = new SuperValue();” sort, hogy a kívánt eredményt kapjuk?
Megoldás – Minifeladatok I.
Posted by Tóth Viktor in .NET, Minifeladat on 2012. Március 11.
Ez a cikk a Minifeladatok I megoldását tárgyalja. A program a SuperValue hibás tervezése és használata miatt a várt 100 helyett a 0 értéket írja ki. A megoldás röviden A SuperValue egy értéktípus. Az értéktípusú változók maguk hordozzák a reprezentált értéket. Amikor egy értéktípusú változó értéket kap egy másiktól, a teljes reprezentáció átmásolódik. A futtatórendszer [...]
