private static bool checkSignRSA(SortedDictionary<string, string> sParaTemp, String rsa_public)
{
string oid_partner;
sParaTemp.TryGetValue ("sign_type", out oid_partner);
Console.WriteLine("进入商户[" + oid_partner + "]MD5签名验证");
if (sParaTemp == null)
{
return false;
}
String sign;
if (!sParaTemp.TryGetValue ("sign", out sign))
{
return false;
}
// 生成签名原串
String sign_src = genSignData(sParaTemp);
Console.WriteLine("商户[" + oid_partner + "]待签名原串"
+ sign_src);
Console.WriteLine("商户[" + oid_partner + "]签名串"
+ sign);
try
{
if (RSAFromPkcs8.verify(sign_src,sign,rsa_public,"UTF-8" ))
{
Console.WriteLine("商户[" + oid_partner
+ "]RSA签名验证通过");
return true;
} else
{
Console.WriteLine("商户[" + oid_partner
+ "]RSA签名验证未通过");
return false;
}
} catch (Exception e)
{
Console.WriteLine("商户[" + oid_partner
+ "]RSA签名验证异常" + e.Message);
return false;
}
}