Подскажите как правильно сгенерировать приватный и закрытый ключ именно для RSA-2048
Я правильно понял что публичный ключём мы шифруем текст, а приватным мы должны расшифровать?!
[UPD]
Написал два метода получения ключей:
public string GetPrivateKey()
{
RSAParameters privateKey;
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048))
{
privateKey = rsa.ExportParameters(true);
rsa.PersistKeyInCsp = false;
}
return this.GetKeyString(privateKey);
}
public string GetPublicKey()
{
RSAParameters publicKey;
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048))
{
publicKey = rsa.ExportParameters(false);
rsa.PersistKeyInCsp = false;
}
return this.GetKeyString(publicKey);
}
public string GetKeyString(RSAParameters publicKey)
{
try
{
using (StringWriter stringWriter = new StringWriter())
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(RSAParameters));
xmlSerializer.Serialize(stringWriter, publicKey);
return stringWriter.ToString();
}
}
catch (Exception) { return string.Empty; }
}
Приватный ключ получаю: [Урезал текст - слишком большой]
<?xml version="1.0" encoding="utf-16"?>
<RSAParameters xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Exponent>AQAB</Exponent><Modulus>6VYDkCk8iLVq164PFa5vYJl2YmGFwoxowCqCa5vjb5e
/srIxu8wwV5CUkx8Z8iFELsF4OS2P4gsmjynIvxNbxjVSeIw/pUPZ....Q==</Modulus>
</RSAParameters>
Публичный ключ тоже получаю: [Урезал текст - слишком большой]
<?xml version="1.0" encoding="utf-16"?>
<RSAParameters xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Exponent>AQAB</Exponent>
<Modulus>xYzDfliXVCShKqgZoJGIIU9Y99+0+xyLQtQ==</Modulus>
<P>3DdMxVQT3AGKMSbJj++2dwijjYtFasYJdEFyn8=</P>
<Q>5aaUwQevrusHTfdLf4fBMwv3mJuHljdyz1gtOrcZLjLqSzS3Wppwss=</Q>
<DP>GGKDP2T1ndoqB9aLc8=</DP>
<DQ>e9jFGgfFcTdc=</DQ>
<InverseQ>fruc1FUrCmmg80d/w=</InverseQ>
<D>U2W4hhUuNz/+IfC2WEUsNugbbqRBQ==</D>
</RSAParameters>
Подскажите я всё правильно сделал?
Так же очень интересуют данные вопросы))
1 - Как сохранить ключи в файл без xml формата?
2 - Как писалось на других форумах в using
ключ rsa сохраняется и.т.п
и что нужно ставить rsa.PersistKeyInCsp = false;
- правильно ли
это?
3 - Можно ли несколько раз вызывать RSACryptoServiceProvider
в
using
?
Я правильно понял что публичный ключём мы шифруем текст, а приватным мы должны расшифровать?!
Верно.
RSAParameters
имеет публичные поля (P
, Q
, Modulus
, и т. д.). Они все простые массивы байт. Вы можете сохранить их в другом удобном для вас формате. И восстановить обратно просто записав массивы байт в пустой экземпляр.RSACryptoServiceProvider
с именем контейнера для хранения ключей. По умолчанию никакой контейнер не используется, а значит ключ нигде не сохраняется. С документации:
The PersistKeyInCsp property has no effect if the RSACryptoServiceProvider object is created with a null key container name.
RSACryptoServiceProvider
.Какие существуют виды рекламных бордов и как выбрать подходящий?
Аренда удаленного сервера: цены, провайдеры и условия. Руководство для начинающих
У некоторых программ я видел такую картину:есть само окно и внутри него еще одно окно, вот как на пример в программе Origin: Есть основное окно...
Отправляю запрос к api Литреса для получения списка новых книг с определенной датыНо проблема в том, что если в качестве чекпоинта указать...
Есть пустая форма Form1 и присоедененная к ней notifyicon1В скрипте Form1