C# 使用模数和指数中的公钥验证SHA-256签名

C# 使用模数和指数中的公钥验证SHA-256签名,c#,ios,objective-c,sha256,C#,Ios,Objective C,Sha256,我对这个问题绞尽脑汁已经有一段时间了。我要实现一个签名检查,它已经用c#实现了,但我们也需要在iOS上实现它 c代码如下所示 var signedData = version + "#" + string.Join("#", deltas.Select(s => s.Key + "=" + s.Value)); var signature = Convert.FromBase64String(vertification); using (RSACryptoServiceProvider r

我对这个问题绞尽脑汁已经有一段时间了。我要实现一个签名检查,它已经用c#实现了,但我们也需要在iOS上实现它

c代码如下所示

var signedData = version + "#" + string.Join("#", deltas.Select(s => s.Key + "=" + s.Value));
var signature = Convert.FromBase64String(vertification);
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{ //TODO: Configuration 
rsa.FromXmlString("<RSAKeyValue><Modulus>a long text here</Modulus><Exponent>a small text here</Exponent></RSAKeyValue>"); 
var valid = rsa.VerifyData(Encoding.UTF8.GetBytes(signedData), new SHA256Managed(), signature); 
return valid; 
}
var signedData=version+“#”+string.Join(“#”,delta.Select(s=>s.Key+”=“+s.Value));
var签名=Convert.FromBase64String(vertification);
使用(rsacryptserviceprovider rsa=new rsacryptserviceprovider())
{//TODO:配置
FromXmlString(“此处为长文本,此处为小文本”);
var valid=rsa.VerifyData(Encoding.UTF8.GetBytes(signedData),new SHA256Managed(),signature);
返回有效;
}

一个小问题是我们不能使用任何可可豆或外部库。

这不是一个小问题!您需要自己实现所需的
RSACrytoServiceProvider
功能。我建议您使用reflector并对
RSACrytoServiceProvider
类进行反向工程,以将其转换为objective C。现在,我已经尝试了不使用任何外部库的方法,并且放弃了。你知道图书馆的解决方案吗?试试这个问题。。。我在谷歌上搜索了“ios验证sha256”。希望这有助于。。。当然,似乎比自己实现RSA算法更容易;0)