Переношу проект из net.4.5 в net.core. Код net.4.5:
String RsaKey = "<RSAKeyValue><Modulus>vSf...EuQ==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";
RSACryptoServiceProvider RSA = new
System.Security.Cryptography.RSACryptoServiceProvider();
RSA.FromXmlString(RsaKey);
//Проверяем подпись
Boolean Res = RSA.VerifyHash(Hash, "MD5", Sign);
Код net.core:
RSACryptoServiceProvider RSA = new
System.Security.Cryptography.RSACryptoServiceProvider();
RSAParameters parameters = new RSAParameters();
parameters.Modulus = Convert.FromBase64String("vSf...EuQ==");
parameters.Exponent = Convert.FromBase64String("AQAB");
RSA.ImportParameters(parameters)
//Проверяем подпись
Boolean Res = RSA.VerifyHash(Hash, "MD5", Sign);
В коде для net.core только загрузка ключа немного другое - нет процедуры загрузки ключа из XML. Но код из net.core при проверке подписи возвращает Ложь, хотя все входные данные и ключи одни и те-же. В чем может быть дело?
Сборка персонального компьютера от Artline: умный выбор для современных пользователей