Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menjana Sijil Ditandatangani Sendiri Menggunakan C#?
Panduan Penjanaan Sijil Ditandatangani Sendiri C#
Terdapat banyak cara untuk menjana sijil yang ditandatangani sendiri, tetapi satu yang mudah untuk dilaksanakan dalam C# ialah menggunakan kelas System.Security.Cryptography.X509Certificates.CertificateRequest, yang tersedia dalam .NET Framework 4.7.2 Tersedia dalam dan versi yang lebih baru. Sijil yang ditandatangani sendiri boleh digunakan untuk penyulitan tempatan tanpa perlu menjamin komunikasi.
Pelaksanaan kod:
Kod sampel berikut menunjukkan cara menjana sijil yang ditandatangani sendiri menggunakan kelas di atas:
<code class="language-csharp">using System; using System.IO; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; public class CertificateUtil { public static void GenerateCertificate() { // 生成非对称密钥对 var ecdsa = ECDsa.Create(); // 使用指定的主题和密钥创建证书请求 var req = new CertificateRequest("cn=foobar", ecdsa, HashAlgorithmName.SHA256); // 生成自签名证书,设置有效期 var cert = req.CreateSelfSigned(DateTimeOffset.Now, DateTimeOffset.Now.AddYears(5)); // 以PFX格式导出证书(包含私钥) 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>
Kod ini menjana sijil yang ditandatangani sendiri bernama "foobar" menggunakan Algoritma Tandatangan Digital Elliptic Curve (ECDSA) dan algoritma pencincangan SHA-256. Sijil sah selama lima tahun dan boleh dieksport dalam format PFX (PKCS #12) (mengandungi kunci persendirian) dan format CER (Base64 dikodkan) (hanya mengandungi kunci awam).
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Sijil Ditandatangani Sendiri Menggunakan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!