Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mencipta Sijil Ditandatangani Sendiri dalam C#?
Buat sijil yang ditandatangani sendiri menggunakan C#
Dalam C#, anda boleh menjana sijil yang ditandatangani sendiri dengan mudah menggunakan kelas System.Security.Cryptography.X509Certificates.CertificateRequest
. Kaedah ini menyediakan cara yang mudah dan khusus platform untuk mencipta sijil yang sesuai untuk tujuan penyulitan tempatan.
mula-mula menunjukkan objek ECDsa
, yang mewakili pasangan kunci asimetri. Kemudian, buat contoh CertificateRequest
dengan maklumat sijil yang diperlukan, termasuk nama pemohon, algoritma kunci dan algoritma cincang.
Langkah terakhir ialah mencipta sijil yang ditandatangani sendiri dengan memanggil kaedah CreateSelfSigned
. Kaedah ini menetapkan sijil dengan tarikh mula dan tamat serta menjana sijil X.509 yang sah.
Untuk menyimpan kunci peribadi dalam sijil PFX (PKCS #12), gunakan Export(X509ContentType.Pfx, "密码")
untuk mengeksport sijil. Ini membolehkan kunci peribadi dilindungi dengan kata laluan.
Selain itu, dengan mengeksport sijil menggunakan Export(X509ContentType.Cert)
anda boleh mencipta fail CER berkod Base64 yang mengandungi kunci awam sahaja. Ini berguna jika anda ingin berkongsi sijil secara terbuka atau menggunakan semula kunci awam daripada aplikasi lain.
Contoh kod berikut menunjukkan keseluruhan proses:
<code class="language-csharp">using System; using System.IO; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; public class CertificateUtil { public static void MakeCert() { var ecdsa = ECDsa.Create(); // 生成非对称密钥对 var req = new CertificateRequest("cn=foobar", ecdsa, HashAlgorithmName.SHA256); var cert = req.CreateSelfSigned(DateTimeOffset.Now, DateTimeOffset.Now.AddYears(5)); // 创建包含私钥的PFX (PKCS #12) 文件 File.WriteAllBytes("c:\temp\mycert.pfx", cert.Export(X509ContentType.Pfx, "P@55w0rd")); // 创建Base64编码的CER (仅包含公钥) 文件 File.WriteAllText("c:\temp\mycert.cer", "-----BEGIN CERTIFICATE-----\r\n" + Convert.ToBase64String(cert.Export(X509ContentType.Cert), Base64FormattingOptions.InsertLineBreaks) + "\r\n-----END CERTIFICATE-----"); } }</code>
Contoh ini menjana sijil yang ditandatangani sendiri dengan kunci peribadi disimpan dalam format PFX dan kunci awam disimpan dalam format CER berkod Base64. Sijil ini boleh diimport ke dalam stor sijil Windows atau digunakan untuk penyulitan data atau penyahsulitan dalam aplikasi tempatan.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Sijil Ditandatangani Sendiri dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!