RSA keys are in pairs, but you used public key in both methods. replacing provided key in CheckSignature with private key should solve your problem. and in CheckSignature method you should feed VerifySignature with MD5 hash of key varibale, the code should be more like this
public static byte\[\] CreateSignature(string key64)
{
var data = Convert.FromBase64String(key64);
var rSaCryptoServiceProvider = new RSACryptoServiceProvider(new CspParameters
{
Flags = CspProviderFlags.UseMachineKeyStore
});
rSaCryptoServiceProvider.FromXmlString(privateKey);
var RSAform = new RSAPKCS1SignatureFormatter();
RSAform.SetKey(rSaCryptoServiceProvider);
RSAform.SetHashAlgorithm("MD5");
var md5 = MD5.Create();
byte\[\] hashData = md5.ComputeHash(data);
return RSAform.CreateSignature(hashData);
}
hope this helps