data="
{"bizResponseContent":"{\"code\":\"OK\",\"summary\":\"Success\",\"result\":{\"payParam\":\"https://qr.95516.com/01020001/wcqr?f=ICBCqr&X=1&T=3&P=13&I=e03d925776684b4d&N=eda2cd4a81a690c8a44f6a1288309c1b&L=0fe51c864aef965dc013c3b30b3bd0fdaf742fabc0175d4dc58cb884b16403a0bc5f685222b68305f65556aaf94a5f7a\"},\"success\":true},\"retMsg\":\"Success\"","msgId":"cff4d4237d5342eead55286d4f5457b1","retCode":"0","retMsg":"Success"}
";
publicKeyJava="
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkI2TvGIx8j+O1O9hayC07S6E7FOBMzp7BED5w36Yx4geKPwG8jrFztuEnHJcZIzCFFS4cjv6EEIJoTBUrvSeLsei3IZ4YS9bYLsF4UtzuQNLnPuEyXu+EG/atdvUmxusZaWAKfUCaL40OreePG5VMKicx4zhZ7UIQtr5zBASkA0h2UOZGEfOa8vPGjpQ/RK9+zBlWqlE+n3NBIsY+hm5uXJQtF5HT01TXbpP1boPuaW98pxdAiFBsLwAHx//ImAeGN3OcKM3V2XnJ2OulZ3XKRo93yT9YPKTc2a4iJTg4PFwlRaXI/cRVK4JlzVxX6XHfCkOGFKAKU42qYaZg3RKeQIDAQAB
";
signature="
iKB7nswi81V9U6DgVCaW/qMPbsjKGAS9xni3imrfozsT7Ka/Ptz/Mb6oxm//Nl3YNUF56U05qd4lJum8YNO7YP90l2UfUm1NN+7KvfcpOteJLHDMaeWmZwpP026UWNr7RD5xjUqJwOS8Wk0aEs6MsB174UFOGtDVEO4yUk5askUnGBAUG4An8f42KNkHl3IjXpHlTavR/AvvOUoZLIOj5O1FxykQoBkIsiEDbABu+F2bcU0Df8dl2e5zkRZSNp4hmAyBLwfkyrDO59LcL47VlEK62coNMqNkILjpLBId2qjxM2bPqvItPCNdqrn8v/n5nqffvW3RxKS7cCNcDAo9VA==
";
hashAlgorithm="
SHA256
";
// SHA256 验签
public static bool VerifyJava(string data, string publicKeyJava, string signature, string hashAlgorithm , string encoding = "UTF-8")
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
//导入公钥,准备验证签名
rsa.FromPublicKeyJavaString(publicKeyJava);
//返回数据验证结果
byte[] Data = Encoding.GetEncoding(encoding).GetBytes(data);
byte[] rgbSignature = Convert.FromBase64String(signature);
return rsa.VerifyData(Data, hashAlgorithm, rgbSignature);
}
rsa.VerifyData(Data, hashAlgorithm, rgbSignature); 返回 false