/// <summary>
        /// 字符串加密
        /// </summary>
        /// <param name="data">待加密数据</param>
        /// <param name="proEntity">加密配置</param>
        /// <returns>返回加密后数据</returns>
        public static string Encrypt(string data, EncryptionConfigEntity proEntity)
        {
            var original        = new MemoryStream(Encoding.UTF8.GetBytes(data));
            var encryptedStream = Encrypt(original, proEntity);
            var encryptedData   = new Byte[encryptedStream.Length];

            encryptedStream.Read(encryptedData, 0, encryptedData.Length);
            //convert the encrytped stream to string
            return(Decryption.BytesToBase64(encryptedData));
        }
        /// <summary>
        /// 非对称加密算法
        /// </summary>
        /// <param name="data">字符串</param>
        /// <param name="profile">配置文件</param>
        /// <param name="key">output parameter containing the generated secret key </param>
        /// <param name="iv">output parameter containing the generated iv key</param>
        /// <param name="signature">数字签名</param>
        /// <returns>dencrypted string</returns>
        public static string Encrypt(string data, string profile, out string key, out string iv, out string signature)
        {
            //convert the string into stream
            var original = new MemoryStream(Encoding.UTF8.GetBytes(data));
            //encrypte the stream
            var encryptedStream = Encrypt(original, profile, out key, out iv, out signature);
            //convert the encrypted into back to string
            var encryptedData = new byte[encryptedStream.Length];

            encryptedStream.Read(encryptedData, 0, encryptedData.Length);
            return(Decryption.BytesToBase64(encryptedData));
        }