Как проверить подпись с помощью алгоритма RSA 256 в ASP.NET с помощью C#?
Я хочу проверить подпись с помощью алгоритма RSA 256 в asp.net с помощью c#. При проверке подписанного исходного сообщения в виде байтов возникает следующая проблема (недопустимые символы).
Подписанное оригинальное сообщение, как показано ниже:
1:F01BNZWOMRXAXXX0001000001}{2:I102CBOMOMRUXACHN}{3:{113:0100}}{4: :20:BNZW0M00017DW :23:CREDIT :50K:/00410039933001 SUBAIH NASSER SALIM AL SIYABI POBOX 644 MUSCAT MANOOMA - SEEB ,OMAN :52A:BNZWOMRX BANK NIZWA :26T:001 :77B:/DNUM/492282 /DDATE/170423 :71A:SHA :21:TRF000492282/1 :32B:OMR75,000 :57A:BMUSOMRX :59:/0301011157980014 FAREEQ AL RAHMA :70:SO :32A:170427OMR75,000 :72:/PRT/10 /CODTYPTR/001 -}
Что я уже пробовал:
public static bool VerifyData(string originalMessage, string signedMessage, RSAParameters publicKey) { bool success = false; using (var rsa = new RSACryptoServiceProvider()) { byte[] bytesToVerify = Convert.FromBase64String(originalMessage); byte[] signedBytes = Convert.FromBase64String(signedMessage); try { rsa.ImportParameters(publicKey); SHA512Managed Hash = new SHA512Managed(); byte[] hashedData = Hash.ComputeHash(signedBytes); success = rsa.VerifyData(bytesToVerify, CryptoConfig.MapNameToOID("SHA256"), signedBytes); } catch (CryptographicException e) { Console.WriteLine(e.Message); } finally { rsa.PersistKeyInCsp = false; } } return success; }