Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menjana Sijil Ditandatangani Sendiri Menggunakan C#?

Bagaimanakah Saya Boleh Menjana Sijil Ditandatangani Sendiri Menggunakan C#?

DDD
Lepaskan: 2025-01-13 07:35:42
asal
907 orang telah melayarinya

How Can I Generate a Self-Signed Certificate Using 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:

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-----");
    }
}
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan