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
832 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:

<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>
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!

sumber:php.cn
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