public SignData ( |
||
data | ||
hashAlgorithm | Internal.Cryptography.HashAlgorithmName | |
padding | RSASignaturePadding | |
return | byte[] |
private static string Rsa(string data, string privateKeyPem, string charset, string signType, bool keyFromFile) { byte[] signatureBytes = null; try { System.Security.Cryptography.RSA rsaCsp = null; if (keyFromFile) { //文件读取 rsaCsp = LoadCertificateFile(privateKeyPem, signType); } else { //字符串获取 rsaCsp = LoadCertificateString(privateKeyPem, signType); } byte[] dataBytes = null; if (string.IsNullOrEmpty(charset)) { dataBytes = Encoding.UTF8.GetBytes(data); } else { dataBytes = Encoding.GetEncoding(charset).GetBytes(data); } if (null == rsaCsp) { throw new SpearPayException("您使用的私钥格式错误,请检查RSA私钥配置" + ",charset = " + charset); } if ("RSA2".Equals(signType)) { signatureBytes = rsaCsp.SignData(dataBytes, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1); } else { signatureBytes = rsaCsp.SignData(dataBytes, HashAlgorithmName.SHA1, RSASignaturePadding.Pkcs1); } } catch { throw new SpearPayException("您使用的私钥格式错误,请检查RSA私钥配置" + ",charset = " + charset); } return(Convert.ToBase64String(signatureBytes)); }
public string Sign(string data) { byte[] dataBytes = _encoding.GetBytes(data); var signatureBytes = _privateKeyRsaProvider.SignData(dataBytes, _hashAlgorithmName, RSASignaturePadding.Pkcs1); return(Convert.ToBase64String(signatureBytes)); }
/// <summary> /// RSA Sign /// </summary> /// <param name="content">raw content </param> /// <param name="privateKey">private key</param> /// <param name="hashAlgorithmName">hashAlgorithm name</param> /// <param name="rSASignaturePadding">ras siginature padding</param> /// <param name="encoding">text encoding</param> /// <returns></returns> public static string RSASign(string content, string privateKey, HashAlgorithmName hashAlgorithmName, RSASignaturePadding rSASignaturePadding, Encoding encoding) { Check.Argument.IsNotEmpty(content, nameof(content)); Check.Argument.IsNotEmpty(privateKey, nameof(privateKey)); Check.Argument.IsNotNull(rSASignaturePadding, nameof(rSASignaturePadding)); byte[] dataBytes = encoding.GetBytes(content); using (System.Security.Cryptography.RSA rsa = System.Security.Cryptography.RSA.Create()) { rsa.FromJsonString(privateKey); var signBytes = rsa.SignData(dataBytes, hashAlgorithmName, rSASignaturePadding); return(Convert.ToBase64String(signBytes)); } }
public override byte[] Sign() { try { ms.Position = 0; HashAlgorithm hash = HashAlgorithm.Create("SHA1"); byte[] toBeSigned = hash.ComputeHash(ms); ms = new MemoryStream(); //return PKCS1.Sign_v15(rsa, hash, toBeSigned); byte[] res = rsa.SignData(toBeSigned, 0, toBeSigned.Length, new HashAlgorithmName("sha1"), RSASignaturePadding.Pkcs1); return(res); } catch (Exception ex) { Console.WriteLine(ex); throw; } }
public override byte[] SignData(Stream data, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding) => _impl.SignData(data, hashAlgorithm, padding);