Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Nota
Artikel ini khusus untuk .NET Framework. Ini tidak berlaku untuk implementasi .NET yang lebih baru, termasuk .NET 6 dan versi yang lebih baru.
Ada empat cara pengembang dapat membuat objek kriptografi menggunakan Windows SDK:
Buat objek dengan menggunakan
newoperator.Buat objek yang mengimplementasikan algoritma kriptografi tertentu dengan memanggil metode pada kelas abstrak untuk algoritma tersebut
Create.Buat objek yang mengimplementasikan algoritma kriptografi tertentu dengan memanggil CryptoConfig.CreateFromName metode .
Buat objek yang mengimplementasikan kelas algoritma kriptografi (seperti cipher blok simetris) dengan memanggil
Createmetode pada kelas abstrak untuk jenis algoritma tersebut (seperti SymmetricAlgorithm).
Misalnya, pengembang ingin menghitung hash SHA1 dari satu set byte. Namespace System.Security.Cryptography berisi dua implementasi algoritma SHA1, satu implementasi yang dikelola murni dan satu yang membungkus CryptoAPI. Pengembang dapat memilih untuk membuat instans implementasi SHA1 tertentu (seperti SHA1Managed) dengan memanggil new operator. Namun, jika tidak masalah kelas mana yang dimuat oleh runtime bahasa umum selama kelas tersebut mengimplementasikan algoritma hash SHA1, pengembang dapat membuat objek dengan memanggil metode SHA1.Create. Metode ini memanggil System.Security.Cryptography.CryptoConfig.CreateFromName("System.Security.Cryptography.SHA1"), yang harus mengembalikan implementasi algoritma hash SHA1.
Pengembang juga dapat memanggil System.Security.Cryptography.CryptoConfig.CreateFromName("SHA1") karena, secara default, konfigurasi kriptografi mencakup nama pendek untuk algoritma yang dikirim dalam .NET Framework.
Jika tidak masalah algoritma hash mana yang digunakan, pengembang dapat memanggil HashAlgorithm.Create metode , yang mengembalikan objek yang mengimplementasikan transformasi hashing.
Nama Algoritma Pemetaan dalam File Pengaturan Konfigurasi
Secara default, runtime mengembalikan SHA1CryptoServiceProvider objek untuk keempat skenario. Namun, administrator komputer dapat mengubah jenis objek yang dikembalikan metode dalam dua skenario terakhir. Untuk melakukan ini, Anda harus memetakan nama algoritma yang ramah ke kelas yang ingin Anda gunakan dalam file konfigurasi komputer (Machine.config).
Contoh berikut menunjukkan cara mengonfigurasi runtime sehingga System.Security.Cryptography.SHA1.Create, System.Security.CryptoConfig.CreateFromName("SHA1"), dan System.Security.Cryptography.HashAlgorithm.Create mengembalikan MySHA1HashClass objek.
<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>
Anda dapat menentukan nama atribut dalam <cryptoClass> elemen (contoh sebelumnya menamai atribut MySHA1Hash). Nilai atribut dalam <cryptoClass> elemen adalah string yang digunakan runtime bahasa umum untuk menemukan kelas . Anda dapat menggunakan string apa pun yang memenuhi persyaratan yang ditentukan dalam Menentukan Nama Tipe yang Sepenuhnya Memenuhi Syarat.
Banyak nama algoritma yang dapat dipetakan ke kelas yang sama. Elemen <nameEntry> memetakan kelas ke satu nama algoritma yang mudah dipahami. Atribut name dapat berupa string yang digunakan saat memanggil metode System.Security.Cryptography.CryptoConfig.CreateFromName atau nama kelas kriptografi abstrak di System.Security.Cryptography namespace. Nilai class atribut adalah nama atribut dalam <cryptoClass> elemen .
Nota
Anda bisa mendapatkan algoritma SHA1 dengan memanggil SHA1.Create metode Security.CryptoConfig.CreateFromName("SHA1 "). Setiap metode hanya menjamin bahwa metode mengembalikan objek yang mengimplementasikan algoritma SHA1. Anda tidak perlu memetakan setiap nama algoritma yang mudah diingat ke kelas yang sama dalam file konfigurasi.
Untuk daftar nama bawaan dan kelas yang dipetakan ke, lihat CryptoConfig.