Я пытаюсь использовать открытый ключ пользователя, чтобы зашифровать строку в своем роде pgp
моды, но я получаю сообщение об ошибке:C# .net ядро шифрование
bignum routines:BN_mod_inverse:no inverse
Я осмотрелся и я не могу найти ничего конкретного относительно того, что я делаю неправильно. Я просмотрел основную информацию .NET, но я не могу найти ничего подходящего.
Я использую следующий код:
byte[] publicKey = Encoding.UTF8.GetBytes(key);
RSA rsa = RSA.Create();
RSAParameters RSAKeyInfo = new RSAParameters();
RSAKeyInfo.Modulus = publicKey;
RSAKeyInfo.Exponent = new byte[]{1,0,1};
rsa.ImportParameters(RSAKeyInfo);
var encrypted = rsa.Encrypt(Encoding.UTF8.GetBytes(user.challenge.text), RSAEncryptionPadding.Pkcs1);
Это вполне возможно, я буду об этом совершенно неправильно, так что любые мысли или предложения было бы здорово!
Открытый ключ состоит из байтов, это не строка. Кроме того, он обычно состоит из кодирования модуля и общественного показателя, а не только модуля. Используйте OAEP, чтобы получить что-то безопасное. –