Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Bu makale .NET Framework'e özgüdür. .NET 6 ve sonraki sürümleri de dahil olmak üzere daha yeni .NET uygulamaları için geçerli değildir.
Bir geliştiricinin Windows SDK'sını kullanarak şifreleme nesnesi oluşturmasının dört yolu vardır:
işlecini
newkullanarak bir nesne oluşturun.O algoritmanın soyut sınıfında
Createyöntemini çağırarak, belirli bir kriptografi algoritmasını uygulayan bir nesne oluşturun.yöntemini çağırarak CryptoConfig.CreateFromName belirli bir şifreleme algoritması uygulayan bir nesne oluşturun.
Soyut sınıftaki
Createyöntemini çağırarak bir şifreleme algoritmaları sınıfı (örn. simetrik blok şifreleme) uygulayan bir nesne oluşturun (örn. SymmetricAlgorithm).
Örneğin, bir geliştiricinin bir bayt kümesinin SHA1 karması hesaplamak istediğini varsayalım.
System.Security.Cryptography ad alanı, SHA1 algoritmasının biri tamamen yönetilen bir uygulama, diğeri ise CryptoAPI'yi saran bir uygulama olmak üzere iki uygulamasını içerir. Geliştirici, new işlemini çağırarak belirli bir SHA1 uygulamasının (örneğin, SHA1Managed) örneğini oluşturmayı seçebilir. Ancak, sınıf SHA1 karma algoritmasını implement ettiği sürece ortak dil çalışma zamanının hangi sınıfa yüklendiği önemli değilse, geliştirici SHA1.Create yöntemini çağırarak bir nesne oluşturabilir. Bu yöntem, SHA1 karma algoritmasının bir uygulamasını döndürmesi gereken System.Security.Cryptography.CryptoConfig.CreateFromName("System.Security.Cryptography.SHA1") öğesini çağırır.
Geliştirici ayrıca System.Security.Cryptography.CryptoConfig.CreateFromName("SHA1") öğesini de çağırabilir çünkü şifreleme yapılandırması varsayılan olarak .NET Framework'te gönderilen algoritmalar için kısa adlar içerir.
Hangi karma algoritmasının kullanıldığı önemli değilse, geliştirici karma dönüştürmesi uygulayan bir nesne döndüren yöntemini çağırabilir HashAlgorithm.Create .
Yapılandırma Dosyalarında Algoritma Adlarını Eşleme
Varsayılan olarak, çalışma zamanı dört senaryonun tümü için bir SHA1CryptoServiceProvider nesne döndürür. Ancak, makine yöneticisi son iki senaryodaki yöntemlerin döndüreceği nesne türünü değiştirebilir. Bunu yapmak için, kolay bir algoritma adını makine yapılandırma dosyasında (Machine.config) kullanmak istediğiniz sınıfla eşlemeniz gerekir.
Aşağıdaki örnek, System.Security.Cryptography.SHA1.Create, System.Security.CryptoConfig.CreateFromName("SHA1") ve System.Security.Cryptography.HashAlgorithm.Create'ın nesne MySHA1HashClass döndürmesi için çalışma zamanının nasıl yapılandırıldığını gösterir.
<configuration>
<!-- Other configuration settings. -->
<mscorlib>
<cryptographySettings>
<cryptoNameMapping>
<cryptoClasses>
<cryptoClass MySHA1Hash="MySHA1HashClass, MyAssembly
Culture='en', PublicKeyToken=a5d015c7d5a0b012,
Version=1.0.0.0"/>
</cryptoClasses>
<nameEntry name="SHA1" class="MySHA1Hash"/>
<nameEntry name="System.Security.Cryptography.SHA1"
class="MySHA1Hash"/>
<nameEntry name="System.Security.Cryptography.HashAlgorithm"
class="MySHA1Hash"/>
</cryptoNameMapping>
</cryptographySettings>
</mscorlib>
</configuration>
öğesinde<cryptoClass> özniteliğin adını belirtebilirsiniz (önceki örnekte özniteliği adı verilmiştirMySHA1Hash). öğesindeki <cryptoClass> özniteliğinin değeri, ortak dil çalışma zamanının sınıfını bulmak için kullandığı bir dizedir.
Tam Tür Adlarını Belirtme bölümünde belirtilen gereksinimleri karşılayan herhangi bir dizeyi kullanabilirsiniz.
Birçok algoritma adı aynı sınıfa eşlenebilir.
<nameEntry> öğesi, bir sınıfı anlaşılabilir bir algoritma adıyla eşler.
name Özniteliği System.Security.Cryptography.CryptoConfig.CreateFromName yöntemi çağrılırken kullanılan bir dize veya ad alanında bir soyut şifreleme sınıfının System.Security.Cryptography adı olabilir. özniteliğinin class değeri, öğesindeki <cryptoClass> özniteliğin adıdır.
Uyarı
veya SHA1.Create yöntemini çağırarak bir SHA1 algoritması alabilirsiniz. Her yöntem yalnızca SHA1 algoritmasını uygulayan bir nesne döndürmeyi garanti eder. Algoritmanın her kullanıcı dostu adını yapılandırma dosyasında aynı sınıfa eşlemeniz gerekmez.
Varsayılan adların ve eşledikleri sınıfların listesi için bkz CryptoConfig. .