Как использовать алгоритм RS256 с RSACryptoServiceProvider - PullRequest
0 голосов
/ 07 августа 2020

Согласно microsoft docs конструктор имеет вид:

public RSACryptoServiceProvider (int dwKeySize);

Инициализирует новый экземпляр класса RSACryptoServiceProvider со случайной парой ключей указанного размера. . dwKeySize = Размер ключа, который будет использоваться в битах.

Итак, если я хочу использовать RS256, означает ли это, что мне нужно передать аргумент 2048?

Я немного запутался, потому что конструктор по умолчанию (т.е. без переданных аргументов) создает 1024-битный ключ. Не знаю, зачем им 1024.

1 Ответ

0 голосов
/ 07 августа 2020

Благодаря комментариям я теперь лучше понимаю. Размер ключа на самом деле не используется в алгоритме. Размер ключа определяет, насколько легко его взломать. 2048 - рекомендуемый минимальный размер ключа при использовании RS256 (но теоретически вы можете использовать другой размер). При использовании библиотеки Jose JWT вы укажете используемый алгоритм.

var rsa = new RSACryptoServiceProvider(2048); //Create keys with size 2048 bits
string token=Jose.JWT.Encode(payload, rsa, JwsAlgorithm.RS256); //Here we state the algo is RS256
...