二楼说明
using System;
using System.Security.Cryptography;
using System.Text;
class Program
{
internal static CngKey aliceKeySignature;
internal static byte[] alicePubKeyBlob;
static void Main()
{
try
{
CreateKeys();
byte[] aliceData = Encoding.UTF8.GetBytes("Alice");
byte[] aliceSignature = CreateSignature(aliceData, aliceKeySignature);
Console.WriteLine("Alice created signature: {0}", Convert.ToBase64String(aliceSignature));
if (VerifySignature(aliceData, aliceSignature, alicePubKeyBlob))
{
Console.WriteLine("Alice signature verified successfully");
}
}
catch (Exception ex)
{
Console.WriteLine("1");
}
}
//
//
//
static void CreateKeys()
{
try
{
Console.WriteLine("22");
aliceKeySignature = CngKey.Create(CngAlgorithm.ECDsaP256);
Console.WriteLine("222");
alicePubKeyBlob = aliceKeySignature.Export(CngKeyBlobFormat.GenericPublicBlob);
}
catch (Exception y)
{
Console.WriteLine("2");
using System;
using System.Security.Cryptography;
using System.Text;
class Program
{
internal static CngKey aliceKeySignature;
internal static byte[] alicePubKeyBlob;
static void Main()
{
try
{
CreateKeys();
byte[] aliceData = Encoding.UTF8.GetBytes("Alice");
byte[] aliceSignature = CreateSignature(aliceData, aliceKeySignature);
Console.WriteLine("Alice created signature: {0}", Convert.ToBase64String(aliceSignature));
if (VerifySignature(aliceData, aliceSignature, alicePubKeyBlob))
{
Console.WriteLine("Alice signature verified successfully");
}
}
catch (Exception ex)
{
Console.WriteLine("1");
}
}
//
//
//
static void CreateKeys()
{
try
{
Console.WriteLine("22");
aliceKeySignature = CngKey.Create(CngAlgorithm.ECDsaP256);
Console.WriteLine("222");
alicePubKeyBlob = aliceKeySignature.Export(CngKeyBlobFormat.GenericPublicBlob);
}
catch (Exception y)
{
Console.WriteLine("2");

