Создать криптографическую подпись длиной менее 1024 бит - PullRequest
1 голос
/ 07 мая 2011

Мне нужно подписать QR-код , и я попытался использовать некоторый стандартный код .Net для создания криптографической подписи:

var privateKey = (RSACryptoServiceProvider) certificate.PrivateKey;
var data = Encoding.UTF8.GetBytes( payload );
var signature = privateKey.SignData( data, new SHA1Managed() );

Это работает, но длина подписи составляет 1024 битаСлишком много для QR-кода, который я хочу создать.

Кто-нибудь знает, возможно ли создать более короткую подпись, например, 512 бит?

1 Ответ

1 голос
/ 07 мая 2011

Подпись будет такой же длины, что и модуль для ключей, которые вы используете. Если вы не указали модуль при создании сертификата, по умолчанию он будет равен 1024 битам. Вы можете изменить длину до 512, и тогда результирующая подпись будет 512 бит.

Чтобы изменить модуль при создании сертификата, используйте RSAParameters struct.

...