System.Security.Cryptography.RSA.SignData C# (CSharp) Метод

SignData() публичный Метод

public SignData ( Stream data, Internal.Cryptography.HashAlgorithmName hashAlgorithm, RSASignaturePadding padding ) : byte[]
data System.IO.Stream
hashAlgorithm Internal.Cryptography.HashAlgorithmName
padding RSASignaturePadding
Результат byte[]
        public virtual byte[] SignData(Stream data, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding)
        {
            if (data == null)
                throw new ArgumentNullException(nameof(data));
            if (string.IsNullOrEmpty(hashAlgorithm.Name))
                throw HashAlgorithmNameNullOrEmpty();
            if (padding == null)
                throw new ArgumentNullException(nameof(padding));

            byte[] hash = HashData(data, hashAlgorithm);
            return SignHash(hash, hashAlgorithm, padding);
        }

Same methods

RSA::SignData ( byte data, Internal.Cryptography.HashAlgorithmName hashAlgorithm, RSASignaturePadding padding ) : byte[]
RSA::SignData ( byte data, int offset, int count, Internal.Cryptography.HashAlgorithmName hashAlgorithm, RSASignaturePadding padding ) : byte[]

Usage Example

Пример #1
0
        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));
        }
All Usage Examples Of System.Security.Cryptography.RSA::SignData