<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_12._fejezet</id>
	<title>Szoftverfejlesztés .NET platformon - Jegyzet 12. fejezet - Laptörténet</title>
	<link rel="self" type="application/atom+xml" href="https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_12._fejezet"/>
	<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_12._fejezet&amp;action=history"/>
	<updated>2026-05-17T21:31:36Z</updated>
	<subtitle>Az oldal laptörténete a wikiben</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://vik.wiki/index.php?title=Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_12._fejezet&amp;diff=165760&amp;oldid=prev</id>
		<title>Hryghr: Hryghr átnevezte a(z) Szoftverfejlesztés .NET plattformon - Jegyzet 12. fejezet lapot a következő névre: Szoftverfejlesztés .NET platformon - Jegyzet 12. fejezet: pontos név</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_12._fejezet&amp;diff=165760&amp;oldid=prev"/>
		<updated>2013-05-19T21:25:57Z</updated>

		<summary type="html">&lt;p&gt;Hryghr átnevezte a(z) &lt;a href=&quot;/index.php?title=Szoftverfejleszt%C3%A9s_.NET_plattformon_-_Jegyzet_12._fejezet&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Szoftverfejlesztés .NET plattformon - Jegyzet 12. fejezet (a lap nem létezik)&quot;&gt;Szoftverfejlesztés .NET plattformon - Jegyzet 12. fejezet&lt;/a&gt; lapot a következő névre: &lt;a href=&quot;/Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_12._fejezet&quot; title=&quot;Szoftverfejlesztés .NET platformon - Jegyzet 12. fejezet&quot;&gt;Szoftverfejlesztés .NET platformon - Jegyzet 12. fejezet&lt;/a&gt;: pontos név&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;hu&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Régebbi változat&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;A lap 2013. május 19., 23:25-kori változata&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;hu&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Nincs különbség)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Hryghr</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_12._fejezet&amp;diff=156946&amp;oldid=prev</id>
		<title>David14: David14 átnevezte a(z) User and Data Security lapot a következő névre: Szoftverfejlesztés .NET plattformon - Jegyzet 12. fejezet</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_12._fejezet&amp;diff=156946&amp;oldid=prev"/>
		<updated>2013-02-05T22:06:36Z</updated>

		<summary type="html">&lt;p&gt;David14 átnevezte a(z) &lt;a href=&quot;/index.php?title=User_and_Data_Security&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User and Data Security (a lap nem létezik)&quot;&gt;User and Data Security&lt;/a&gt; lapot a következő névre: &lt;a href=&quot;/index.php?title=Szoftverfejleszt%C3%A9s_.NET_plattformon_-_Jegyzet_12._fejezet&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Szoftverfejlesztés .NET plattformon - Jegyzet 12. fejezet (a lap nem létezik)&quot;&gt;Szoftverfejlesztés .NET plattformon - Jegyzet 12. fejezet&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;hu&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Régebbi változat&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;A lap 2013. február 6., 00:06-kori változata&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;hu&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Nincs különbség)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>David14</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_12._fejezet&amp;diff=145894&amp;oldid=prev</id>
		<title>Unknown user: Új oldal, tartalma: „{{GlobalTemplate|Valaszthato|MCP70-536DataSecurity}}   70-536 .NET Framework 2.0 Application Development Foundation   %TOC{depth=&quot;3&quot;}%  &lt;div id=&quot;user_security&quot;&gt;&lt;/div&gt; =…”</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Szoftverfejleszt%C3%A9s_.NET_platformon_-_Jegyzet_12._fejezet&amp;diff=145894&amp;oldid=prev"/>
		<updated>2012-10-22T11:43:38Z</updated>

		<summary type="html">&lt;p&gt;Új oldal, tartalma: „{{GlobalTemplate|Valaszthato|MCP70-536DataSecurity}}   70-536 .NET Framework 2.0 Application Development Foundation   %TOC{depth=&amp;quot;3&amp;quot;}%  &amp;lt;div id=&amp;quot;user_security&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; =…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Új lap&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{GlobalTemplate|Valaszthato|MCP70-536DataSecurity}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
70-536 .NET Framework 2.0 Application Development Foundation &lt;br /&gt;
&lt;br /&gt;
%TOC{depth=&amp;quot;3&amp;quot;}%&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;user_security&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==User Security==&lt;br /&gt;
&lt;br /&gt;
RBS = Role-Based Security &amp;lt;br&amp;gt;&lt;br /&gt;
ACL = Access Control List: pl. NTFS file rendszer jogok&lt;br /&gt;
&lt;br /&gt;
=WindowsIdentity=: a Windows accountokat reprezentálja. Felhasználót nem tud authentikálni, csak a belépett felhasználóról ad információkat.&lt;br /&gt;
* =static WindowsIdentity GetCurrent()=: aktuális felhasználó lekérdezése&lt;br /&gt;
* =static WindowsIdentity GetAnonymous()=: anonymous felhasználó lekérdezése&lt;br /&gt;
* =static WindowsImpersonationContext Impersonate()=: felhasználót személyesít meg&lt;br /&gt;
* =IsAnonymous=: névtelen-e&lt;br /&gt;
* =IsAuthenticated=: be van-e jelentkezve&lt;br /&gt;
* =IsGuest=: vendég-e&lt;br /&gt;
* =IsSystem=: part of the operating system szerepkörbe tartozik&lt;br /&gt;
* =Name=: &amp;quot;domain\felhasználónév&amp;quot;&lt;br /&gt;
* =AuthenticationType=: hogyan authentikált (általában NTLM)&lt;br /&gt;
* =Token=: biztonsági token&lt;br /&gt;
&lt;br /&gt;
=WindowsPrincipal=: a felhasználó milyen csoportokba tartozik bele. &amp;lt;pre&amp;gt;WindowsIdentity&amp;lt;/pre&amp;gt;-k segítségével lehet a legkönnyebben megszerezni.&lt;br /&gt;
* =WindowsPrincipal currentPrincipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());=&lt;br /&gt;
* =AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);= &amp;lt;br&amp;gt;&lt;br /&gt;
	  =WindowsPrincipal currentPrincipal = (WindowsPrincipal)Thread.CurrentPrincipal;=&lt;br /&gt;
* =IsInRole()=: a felhasználó adott szerepben (pl. =(WindowsBuiltInRole.Administrator=,&lt;br /&gt;
	  =WindowsBuiltInRole.PowerUser= vagy =WindowsBuiltInRole.User=) van-e&lt;br /&gt;
* =PrincipalPermission[Attribute]=: joga van-e valakinek valamihez (imperatív / deklaratív)&lt;br /&gt;
** =Authenticated=: authentikálva van-e a felhasználó&lt;br /&gt;
** =Name=: felhasználó neve&lt;br /&gt;
** =Role=: felhasználó szerepe&lt;br /&gt;
** =Demand()=: jog imperatív ellenőrzése, ha nem sikerül, =Exception=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;declarative_RBS&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Deklaratív RBS===&lt;br /&gt;
&lt;br /&gt;
Fő hátránya, hogy csak metódusra használható, és a hívónak el kell kapnia az exceptiont, ami esemény esetén lehet a Windows is.&lt;br /&gt;
&lt;br /&gt;
# =AppDomain.CurrentDomain.SetPrincipalPolicy()=: milyen policy-t használjunk az appdomain-ben&lt;br /&gt;
# =try-catch= blokkal elkapjuk a nem jogosult hívásokból adódó &amp;lt;pre&amp;gt;SecurityException&amp;lt;/pre&amp;gt;-t&lt;br /&gt;
# =PrincipalPermission= attribútumokkal deklaráljuk a metódus a hívás feltételeit. Például: &amp;lt;br&amp;gt;&lt;br /&gt;
		=[PrincipalPermission(SecurityAction.Demand, Role = @&amp;quot;BUILTIN\Administrators&amp;quot;)]=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;imperative_RBS&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Imperatív RBS===&lt;br /&gt;
&lt;br /&gt;
Kisebb granularitással lehet szabályozni az egyes kódrészletekhez való hozzáférést.&lt;br /&gt;
# =AppDomain.CurrentDomain.SetPrincipalPolicy()=: milyen policy-t használjunk az appdomain-ben&lt;br /&gt;
# =try-catch= blokkal elkapjuk a nem jogosult hívásokból adódó &amp;lt;pre&amp;gt;SecurityException&amp;lt;/pre&amp;gt;-t&lt;br /&gt;
# =PrincipalPermission= objektumban deklaráljuk a metódus a hívás feltételeit&lt;br /&gt;
** =PrincipalPermission(PermissionState)=&lt;br /&gt;
** =PrincipalPermission(name, role)=: a name =Environment.MachineName= + @&amp;quot;\felhasználónév&amp;quot; formájú&lt;br /&gt;
** =PrincipalPermission(name, role, authenticated)=&lt;br /&gt;
** nem fontos paraméterek: =null=&lt;br /&gt;
# =PrincipalPermission.Demand()=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);&lt;br /&gt;
string role = Environment.MachineName + @&amp;quot;\VS Developers&amp;quot;;&lt;br /&gt;
try {&lt;br /&gt;
	 PrincipalPermission pp = new PrincipalPermission(null, role, true);&lt;br /&gt;
	 pp.Demand();&lt;br /&gt;
	 Console.WriteLine(&amp;quot;Access allowed.&amp;quot;);&lt;br /&gt;
	 // TODO: Main application&lt;br /&gt;
} catch(Security.SecurityException ex) {&lt;br /&gt;
	 Console.WriteLine(&amp;quot;Access denied: &amp;quot; + ex.Message);&lt;br /&gt;
	 // TODO: Log error&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;custom_users_roles&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Egyedi felhasználók és szerepek===&lt;br /&gt;
&lt;br /&gt;
Identity implementálása&lt;br /&gt;
* =System.Security.IIdentity= interfész implementálásával&lt;br /&gt;
** kötelező property-k: =AuthenticationType=, =IsAuthenticated=, =Name=&lt;br /&gt;
** opcioniális property-k: cím, telefonszám, stb.&lt;br /&gt;
** kell egy konstruktor, ami az összes property értékét megkapja argumentumként&lt;br /&gt;
* =GenericIdentity : IIdentity= leszármaztatásával&lt;br /&gt;
* =WindowsIdentity=, =FormsIdentity=, =PassportIdentity=, stb. leszármaztatásával&lt;br /&gt;
&lt;br /&gt;
Principal implementálása&lt;br /&gt;
* =IPrincipal= interfész implementálásával&lt;br /&gt;
** =konstruktor(IIdentity identity, string[] roles)=&lt;br /&gt;
** =IPrincipal Identity { get; }=&lt;br /&gt;
** =bool IsInRole(string role)=&lt;br /&gt;
** opcionálisan&lt;br /&gt;
*** =Roles=: visszaadja a szerepek listáját, amiben a felhasználó benne van&lt;br /&gt;
*** =IsInAllRoles=, =IsInAnyRole=&lt;br /&gt;
*** =IsHigherThanRole=, =IsLowerThanRole=: hierarchikus szereprendszer építhető ki velük&lt;br /&gt;
* =GenericPrincipal : IPrincipal= leszármaztatásával&lt;br /&gt;
* =WindowsPrincipal= leszármaztatásával&lt;br /&gt;
&lt;br /&gt;
Principal beállítása: =Thread.CurrentPrincipal= = ...&lt;br /&gt;
&lt;br /&gt;
===Távoli authentikáció===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Exception&amp;lt;/pre&amp;gt;-ök távoli authentikációkor (pl. SSL)&lt;br /&gt;
* =AuthenticationException=: másfajta authentikáció kell, a stream nyitva marad&lt;br /&gt;
* =InvalidCredentialException=: a stream is lezáródik&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;ACL&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Access Control List===&lt;br /&gt;
&lt;br /&gt;
ACL fajtái&lt;br /&gt;
* DACL = Discretionary Access Control List: user/group milyen erőforrásokhoz férhet hozzá&lt;br /&gt;
** ACE-kből (Access Control Entry-kből) áll&lt;br /&gt;
** öröklődik&lt;br /&gt;
** felhasználó akkor jogosult valamire, ha az egyik csoportja jogosult,&lt;br /&gt;
		  de egyikben sem tiltják explicit módon&lt;br /&gt;
* SACL = Security ACL.&lt;br /&gt;
	  Célja a logolás, aminek segítségével detektálhatók a hibás biztonsági beállítások és a behatolások.&lt;br /&gt;
** nem engedélyez vagy tilt&lt;br /&gt;
** ahol a DACL tilt, ott az SACL auditál&lt;br /&gt;
** Sikeres objektum (pl. file vagy mappa) hozzáférés esetén bekerül egy SuccessAudit bejegyzés az&lt;br /&gt;
		  Event Logba (ha be van kapcsolva a logolás)&lt;br /&gt;
** A Windows alapból nem auditál, ehhez be kell kapcsolni az Administrative Tools-on belül a&lt;br /&gt;
		  Local Security Policy ablakban.&lt;br /&gt;
&lt;br /&gt;
ACL-ek kezelése felügyelt kódból&lt;br /&gt;
* =System.Security.AccessControl= névtér&lt;br /&gt;
* Minden erőforrás típusra (DirectorySecurity, FileSecurity, RegistrySecurity, stb.)&lt;br /&gt;
** =&amp;amp;lt;type&amp;gt;Security=&lt;br /&gt;
** =&amp;amp;lt;type&amp;gt;AccessRule=: DACL-t reprezentálja&lt;br /&gt;
** =&amp;amp;lt;type&amp;gt;AuditRule=: SACL-t reprezentálja&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DirectorySecurity dirSec = new DirectorySecurity(@&amp;quot;dir&amp;quot;, AccessControlSections.All)&lt;br /&gt;
AuthorizationRuleCollection arc = dirSec.GetAccessRules(true, true, typeof(NTAccount))&lt;br /&gt;
foreach (FileSystemAccessRule fsAccRule in arc)&lt;br /&gt;
	 Console.WriteLine(&amp;quot;{0} {1} {2}&amp;quot;,&lt;br /&gt;
		  fsAccRule.IdentityReference, fsAccRule.AuditFlags, fsAccRule.FileSystemRights);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ugyanez eljátszható RegistrySecurity-vel és GetAuditRules hívással is, semmi mást nem kell változtatni.&lt;br /&gt;
&lt;br /&gt;
ACL változtatások véglegesítése:&lt;br /&gt;
=Directory.SetAccessControl(dir, accessRuleCollection);=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;data_security&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==Data Security==&lt;br /&gt;
&lt;br /&gt;
=System.Security.Cryptography= névtér&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;symmetric_encryption&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Szimmetrikus titkosítás===&lt;br /&gt;
&lt;br /&gt;
Azonos kulcs mindkét oldalon, előre meg kell osztani.&lt;br /&gt;
&lt;br /&gt;
Algoritmusok&lt;br /&gt;
* DES: könnyen törhető a rövid, 56 bites kulcs miatt&lt;br /&gt;
* TripleDES: 112/156 bit kulcsméret&lt;br /&gt;
* RC2: DES-t váltja le, változtatható a kulcsméret&lt;br /&gt;
* RijndaelManaged (AES): 128 bites, és mivel nem hív natív kódot, partially trusted környezetben is használható. Ha a küldő és a fogadó is legalább Windows XP-t használ, ez a leggyorsabb.&lt;br /&gt;
&lt;br /&gt;
=SymmetricAlgorithm=: a szimmetrikus kulcsú algoritmsok ősosztálya&lt;br /&gt;
* =BlockSize=, =FeedbackSize=, =IV= (initialization vector), =Key=, =KeySize= (bitekben),&lt;br /&gt;
	  =LegalBlockSize=, =LegalKeySizes=, =Mode= (pl. CBC), =Padding=&lt;br /&gt;
** megosztandó: =IV=, =Key= (=Salt=, =NumberOfIterations= nem kell)&lt;br /&gt;
* =CreateEncryptor()=, =CreateDecryptor()=, =GenerateIV()=, =GenerateKey()=, =VaildKeySize()=&lt;br /&gt;
* =Rfc2898DeriveBytes= osztállyal lehet kulcsot generálni jelszóból.&lt;br /&gt;
	  Kell: jelszó, salt, number of iterations&lt;br /&gt;
&lt;br /&gt;
Titkosítás és visszafejtés lépései&lt;br /&gt;
# =Stream= objektum létrehozása&lt;br /&gt;
# =SymmetricAlgorithm= létrehozása&lt;br /&gt;
# =Key= és =IV= meghatározása&lt;br /&gt;
# =SymmetricAlgorithm.CreateEncryptor()= vagy =CreateDecryptor()=&lt;br /&gt;
		visszad egy =ICryptoTransform= objektumot&lt;br /&gt;
# =CryptoStream= létrehozása, amibe beburkoljuk a valódi streamet (mint a tömörítésnél)&lt;br /&gt;
# &amp;lt;pre&amp;gt;Stream&amp;lt;/pre&amp;gt;-ek lezárása&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
using (FileStream inFile = new FileStream(inFileName, FileMode.Open, FileAccess.Read)) {&lt;br /&gt;
	 byte[] fileData = new byte[inFile.Length];&lt;br /&gt;
	 inFile.Read(fileData, 0, (int)inFile.Length);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
SymmetricAlgorithm alg = new RijndaelManaged();&lt;br /&gt;
alg.GenerateKey();&lt;br /&gt;
&lt;br /&gt;
using (FileStream outFile = new FileStream(outFileName, FileMode.OpenOrCreate, FileAccess.Write)) {&lt;br /&gt;
	 ICryptoTransform encryptor = alg.CreateEncryptor();&lt;br /&gt;
	 using (CryptoStream encryptStream = new CryptoStream(outFile, encryptor, CryptoStreamMode.Write))				&lt;br /&gt;
		  encryptStream.Write(fileData, 0, fileData.Length);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;asymmetric_encryption&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Aszimmetrikus titkosítás===&lt;br /&gt;
&lt;br /&gt;
Nincs közös titkos információ. Másik neve: nyilvános kulcsú titkosítás. Lassabb, mint a szimmetrikus kulcsú titkosítás. &lt;br /&gt;
&lt;br /&gt;
=AsymmetricAlgorithm= ősosztály&lt;br /&gt;
* =KeyExchangeAlgorithm=&lt;br /&gt;
* =KeySize=&lt;br /&gt;
* =LegalKeySizes=&lt;br /&gt;
* =SignatureAlgorithm=&lt;br /&gt;
&lt;br /&gt;
=RSACryptoServiceProvider : AsymmetricAlgorithm=&lt;br /&gt;
* Propertyk:&lt;br /&gt;
** =PersistKeyInCsp=: kulcs tárolódjon-e a CSP-ben&lt;br /&gt;
** =UseMachineKeyStore=: a kulcs a felhasználóhoz vagy a géphez legyen köthető&lt;br /&gt;
* Metódusok:&lt;br /&gt;
** =Encrypt()= / =Decrypt()=&lt;br /&gt;
** =ExportParameters(bool)=: kulcsok exportálása XML-be, =true=: a privát kulcsot is exportálja&lt;br /&gt;
** =ImportParameters()=: kulcsok importálása XML-ből&lt;br /&gt;
** =FromXmlString()=: kulcsok importálása XML-t tartalmazó stringből&lt;br /&gt;
* Kulcs részei&lt;br /&gt;
** =D=: privát kulcs&lt;br /&gt;
** =Exponent=, =Modulus=: publikus kulcs részei&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;hash&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Hash===&lt;br /&gt;
&lt;br /&gt;
Nemkulcsolt hash algoritmusok&lt;br /&gt;
* absztrakt osztály (implementációs osztály)&lt;br /&gt;
* =MD5= (=MD5CryptoServiceProvider=): 128 bit&lt;br /&gt;
* =RIPEMD160= (=RIPEMD160Managed=): MD5 helyett, 160 bit&lt;br /&gt;
* =SHA1= (=SHA1CryptoServiceProvider=): 160 bit&lt;br /&gt;
* =SHA256= (=SHA256Managed=): 256 bit&lt;br /&gt;
* =SHA384= (=SHA384Managed=): 384 bit&lt;br /&gt;
* =SHA512= (=SHA512Managed=): 512 bit&lt;br /&gt;
&lt;br /&gt;
Kulcsolt hash algoritmusok&lt;br /&gt;
* =HMACSHA1=: bármekkora kulcs, 20 byte-os hash&lt;br /&gt;
* =MACTripleDES=:  8/16/24 byte-os kulcs, 8 byte-os hash&lt;br /&gt;
&lt;br /&gt;
Példa: kulcsolt =HMACSHA1= hash számítása &amp;lt;pre&amp;gt;args[0]&amp;lt;/pre&amp;gt;-ból generált kulccsal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
byte[] saltValueBytes = Encoding.ASCII.GetBytes(&amp;quot;This is my sa1t&amp;quot;);&lt;br /&gt;
byte[] secretKey = new Rfc2898DeriveBytes(args[0], saltValueBytes).GetBytes(16);&lt;br /&gt;
HMACSHA1 myHash = new HMACSHA1(secretKey);&lt;br /&gt;
using (FileStream file = new FileStream(args[1], FileMode.Open, FileAccess.Read)) {&lt;br /&gt;
	 BinaryReader reader = new BinaryReader(file);&lt;br /&gt;
	 myHash.ComputeHash(reader.ReadBytes((int)file.Length));&lt;br /&gt;
}&lt;br /&gt;
Console.WriteLine(Convert.ToBase64String(myHash.Hash));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Digitális aláírás =RSACryptoServiceProvider= vagy =DSACryptoServiceProvider= használatával&lt;br /&gt;
* =SignData()= / =VerifyData()=:&lt;br /&gt;
	  kiszámolja / ellenőrzi a file digitális aláírását&lt;br /&gt;
* =SignHash()= / =VerifyHash()=:&lt;br /&gt;
	  kiszámolja / ellenőrzi a file hash értékéből számolt digitális aláírását&lt;br /&gt;
* Azért van szükség külön ellenőrző metódusokra, mert az ellenőrzéskor elég a&lt;br /&gt;
	  küldő publikus kulcsát haszálni.&lt;br /&gt;
&lt;br /&gt;
-- [[PallosPeter|Peti]] - 2007.06.27.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Valaszthato]]&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>