string data = "test";
string privateKeyFile = "MID_RSA_PRIVATE_KEY.pfx";
string privatePassword = "123456";
var tempSignCert = new X509Certificate2(privateKeyFile, privatePassword, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable);
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
var sha1 = SHA1.Create();
var msg = sha1.ComputeHash(Encoding.GetEncoding("GBK").GetBytes(data));
var signature = tempSignCert.GetRSAPrivateKey().SignHash(msg, HashAlgorithmName.SHA1, RSASignaturePadding.Pkcs1);