Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# sha256withrsa

作者:飒舛流寒   发布日期:2025-05-06   浏览:86

using System;
using System.Security.Cryptography;
using System.Text;

public class SHA256WithRSAExample
{
    public static void Main()
    {
        // 要签名的数据
        string data = "Hello, World!";
        byte[] dataBytes = Encoding.UTF8.GetBytes(data);

        // 生成 RSA 密钥对
        using (RSA rsa = RSA.Create())
        {
            // 获取私钥和公钥(用于演示,实际应用中应妥善保存密钥)
            Console.WriteLine("Private Key: " + rsa.ExportParameters(true));
            Console.WriteLine("Public Key: " + rsa.ExportParameters(false));

            // 使用私钥进行签名
            byte[] signature = SignData(rsa, dataBytes);
            Console.WriteLine("Signature: " + Convert.ToBase64String(signature));

            // 使用公钥验证签名
            bool isValid = VerifySignature(rsa, dataBytes, signature);
            Console.WriteLine("Is Signature Valid: " + isValid);
        }
    }

    private static byte[] SignData(RSA rsa, byte[] data)
    {
        // 使用 SHA256withRSA 签名
        return rsa.SignData(data, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
    }

    private static bool VerifySignature(RSA rsa, byte[] data, byte[] signature)
    {
        // 使用 SHA256withRSA 验证签名
        return rsa.VerifyData(data, signature, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
    }
}

解释说明

  1. 生成 RSA 密钥对

    • 使用 RSA.Create() 创建一个新的 RSA 密钥对。
    • ExportParameters(true) 返回私钥参数,ExportParameters(false) 返回公钥参数。
  2. 签名数据

    • SignData 方法使用私钥对数据进行签名。这里使用了 SHA-256 哈希算法和 PKCS#1 填充方式。
    • rsa.SignData 方法返回签名后的字节数组。
  3. 验证签名

    • VerifySignature 方法使用公钥验证签名。同样使用 SHA-256 和 PKCS#1 填充方式进行验证。
    • rsa.VerifyData 方法返回一个布尔值,表示签名是否有效。
  4. 输出结果

    • 程序会输出私钥、公钥、签名以及签名验证的结果。

这个示例展示了如何在 C# 中使用 SHA256withRSA 对数据进行签名和验证。

上一篇:selenium c#

下一篇:c#串口

大家都在看

c# 二进制

c# tcp client

c# type.gettype

c# sqlconnection

.net和c#

c#游戏开发

c#网络编程

c# rectangle

c# if else

c# rtsp

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站