, когда я пытаюсь использовать
blockquote>x3
вместо[newIgrac1]
, он не даст мнеИсправить
Изменить
listaIG: [IIgrac]
наlistaIG: IIgrac[]
[ 1111]Почему
[IIgrac]
- это кортеж одного элемента.IIgrac[]
представляет собой массив .
Если Вы хотите подписать блок, jaloplo дал решение.
Если Вы хотите подписать некоторые файлы, созданные Вашей программой, взглянуть на класс DSACryptoServiceProvider в Системе. Безопасность. Пространство имен криптографии.
Попробуйте это:
class Program
{
static byte[] Sign(string message, RSAParameters key)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(key);
byte[] toSign = Encoding.Unicode.GetBytes(message);
return rsa.SignData(toSign, "SHA1");
}
static bool Verify(string message, byte[] signature, RSAParameters key)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(key);
byte[] toVerify = Encoding.Unicode.GetBytes(message);
return rsa.VerifyData(toVerify, "SHA1", signature);
}
static void Main(string[] args)
{
string message = "Let's sign this message.";
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); // Creates a new RANDOM key.
RSAParameters privatekey = rsa.ExportParameters(true);
RSAParameters publickey = rsa.ExportParameters(false);
byte[] signature = Sign(message, privatekey);
if (Verify(message, signature, publickey))
{
Console.WriteLine("It worked!");
}
}
}
Важно отметить, что новая общедоступная/частная пара ключей сгенерирована каждый раз, Вы запускаете эту программу. Чтобы сделать то, что Вы хотите, Вы захотите сохранить общедоступную/частную пару ключей перед использованием его в обоих концах. Ваш открытый ключ является единственной вещью, которую необходимо проверить, таким образом, закрытый ключ не будет опубликован клиенту.
Вы могли бы хотеть смотреть на ExportParameters или ExportCspBlob для выполнения сохранения/загрузки общедоступной/частной пары ключей.
У Вас есть две возможности:
AssemblyInfo.cs
файл и добавляет команды для использования сгенерированного sn: [assembly: AssemblyKeyFile("..\\..\\SN_Generated.snk")]