这里的困难在于读取和解码私钥。你可以用这个
following openssl helper class
public static string Sign(string method, string uuid, string data)
{
string merchantPrivateKey = File.ReadAllText("merchant_private_key.pem");
byte[] der = opensslkey.DecodePkcs8PrivateKey(merchantPrivateKey);
using (RSACryptoServiceProvider rsa = opensslkey.DecodePrivateKeyInfo(der))
using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
{
// This will contain the data to sign
byte[] dataToSign = Encoding.Default.GetBytes(method + uuid + data);
byte[] signature = rsa.SignData(dataToSign, md5);
return Convert.ToBase64String(signature);
}
}
在这个例子中,我使用了MD5,但是您可以使用任何适合您的场景的东西。我想
openssl_sign
默认情况下使用SHA1。