RSACryptoServiceProvider - генерация ключа - C#
Формулировка задачи:
По описанию RSA (клик) можно понять, что числа P и Q должны быть простыми.
Что же мы видим в C#?
В некоторых источниках было сказано, что P и Q - беззнаковые, и правильно делать так:
Всё-равно получаемое число не является простым.
Что я делаю не так?
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048); RSAParameters RSAP = rsa.ExportParameters(true); // стандартная генерация и экспорт ключа Console.WriteLine((new BigInteger(RSAP.P)).ToString()); // P - получаемое число не всегда простое Console.WriteLine((new BigInteger(RSAP.Q)).ToString()); // Q - аналогично
byte[] somebytes = new byte[RSAP.P.Length + 1]; somebytes[somebytes.Length - 1] = 0x00; RSAP.P.CopyTo(somebytes,0); Console.WriteLine((new BigInteger(somebytes)).ToString());
Решение задачи: «RSACryptoServiceProvider - генерация ключа»
textual
Листинг программы
Console.WriteLine(new BigInteger((x.P.Reverse().Concat(new byte[] { 0 })).ToArray()));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д