Я пытаюсь расшифровать текст, который зашифрован с RSA, у меня есть открытый ключ, чтобы сделать этоИнициализация RSA из строки
`
-----BEGIN RSA PUBLIC KEY-----
MIGWAoGBAMqfGO9sPz+kxaRh/qVKsZQGul7NdG1gonSS3KPXTjtcHTFfexA4MkGA
mwKeu9XeTRFgMMxX99WmyaFvNzuxSlCFI/foCkx0TZCFZjpKFHLXryxWrkG1Bl9+
+gKTvTJ4rWk1RvnxYhm3n/Rxo2NoJM/822Oo7YBZ5rmk8NuJU4HLAhAYcJLaZFTO
sYU+aRX4RmoF
-----END RSA PUBLIC KEY-----
`
Как я могу загрузить этот в RSACryptoServiceProvider
, потому что это может загружаться только из XMLString, и я не знаю, как его преобразовать в формат Xml.
Размер ключа 128
Я пытался инициализировать его, используя следующий код
public byte[] Decrypt128(byte[] input)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(128);
rsa.ImportCspBlob(Encoding.ASCII.GetBytes(_longKey));
return rsa.Decrypt(input, true);
}
_longKey является содержание между Начинайте и заканчивайте, а также включая начальные и конечные, бот Bad Version of provider.
Это не дублирует вопрос How do you convert Byte Array to Hexadecimal String, and vice versa?
Я уже знаю, как преобразовать байты в hex и hex в байт, но это никак не помогает мне инициализировать RSACryptoServiceProvider
, возможно, дайте мне пример, как это поможет, но на данный момент это не
Возможный дубликат [? Как преобразовать массив байтов в шестнадцатеричной строки, и наоборот] (HTTP: // StackOverflow. ком/вопросы/311165/как-делать-вы-ко ert-byte-array-to-hexadecimal-string-and-vice versa) –
Я не уверен, как это возможно, если мне нужно инициализировать 'RSACryptoServiceProvider' с помощью открытого ключа –
. Содержимое между BEGIN и END вероятнее всего шестнадцатеричную строку или, что еще более вероятно, [Base64] (http://stackoverflow.com/questions/7134837/how-do-decode-a-base64-encoded-string). Поэтому Encoding.GetBytes не будет работать. –