/// <summary>
        /// Rsa解密
        /// </summary>
        /// <param name="data">待解密的字节码</param>
        /// <param name="cipherMode">密码模式</param>
        /// <param name="cipherPadding">填充方式</param>
        /// <param name="isPublicKey">是否公钥</param>
        /// <param name="base64Key">BASE64编码的公钥</param>
        /// <returns>返回Rsa解密后的字节码</returns>
        public static byte[] RsaDecrypt(this byte[] data, bool isPublicKey, string base64Key, CipherMode cipherMode, CipherPadding cipherPadding)
        {
            ICipherParameters cipherParameters;

            if (isPublicKey)
            {
                cipherParameters = RSAUtilities.GetKeyParameterFormPrivateKey(base64Key);
            }
            else
            {
                cipherParameters = RSAUtilities.GetKeyParameterFormPublicKey(base64Key);
            }
            return(SecurityExtension.Encrypt(data, CipherAlgorithm.RSA, cipherMode, cipherPadding, cipherParameters));
        }
        /// <summary>
        /// 使用公钥Rsa解密
        /// <para>
        /// 如果PKCS#8格式的公钥则使用 <see cref="RsaEncryptByPublicKey"/>
        /// </para>
        /// <para>
        /// 如果PKCS#1格式的公钥则使用 <see cref="RsaEncryptByAsn1PublicKey"/>
        /// </para>
        /// </summary>
        /// <param name="data">待解密的字节码</param>
        /// <param name="publicKey">PKCS#1的BASE64编码的公钥(BASE64编码)</param>
        /// <param name="cipherMode">密码模式</param>
        /// <param name="cipherPadding">填充方式</param>
        /// <returns>返回Rsa加密后的字节码</returns>
        public static byte[] RsaEncryptByAsn1PublicKey(this byte[] data, string publicKey, CipherMode cipherMode, CipherPadding cipherPadding)
        {
            var cipherParameters = RSAUtilities.GetPublicKeyParameterFormAsn1PublicKey(publicKey);

            return(SecurityExtension.Encrypt(data, CipherAlgorithm.RSA, cipherMode, cipherPadding, cipherParameters));
        }