RSA加密解密,Base64String

        ///<remarks>
        /// DotNet.Utilities.RSACryption cryption = new DotNet.Utilities.RSACryption();
        /// cryption.RSAKey_String(out string pubKey, out string priKey);
        /// string message = "test";
        /// string RSAEncryptMessage = cryption.RSAEncrypt_String(pubKey, message);
        /// string res = cryption.RSADecrypt_String(priKey, RSAEncryptMessage);
        /// </remarks>
        /// <summary>
        /// RSA 的密钥产生 产生私钥 和公钥 
        /// </summary>
        /// <param name="publicKey">和公钥</param>
        /// <param name="privateKey">私钥</param>
        public void RSAKey_String(out string publicKey, out string privateKey)
        {
            System.Security.Cryptography.RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
            byte[] publicKeyBytes = rsa.ExportCspBlob(false);
            byte[] privateKeyBytes = rsa.ExportCspBlob(true);
            publicKey = Convert.ToBase64String(publicKeyBytes);
            privateKey = Convert.ToBase64String(privateKeyBytes);
        }
        /// <summary>
        /// RSA的加密函数 String
        /// </summary>
        /// <param name="stringPublicKey"></param>
        /// <param name="m_strEncryptString"></param>
        /// <returns></returns>
        public string RSAEncrypt_String(string stringPublicKey, string m_strEncryptString)
        {

            byte[] PlainTextBArray;
            byte[] CypherTextBArray;
            string Result;
            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
            rsa.ImportCspBlob(Convert.FromBase64String(stringPublicKey));
            PlainTextBArray = Encoding.UTF8.GetBytes(m_strEncryptString);
            CypherTextBArray = rsa.Encrypt(PlainTextBArray, false);
            Result = Convert.ToBase64String(CypherTextBArray);
            return Result;

        }
         /// <summary>
        /// RSA的解密函数 String
        /// </summary>
        /// <param name="stringPrivateKey">base64 string</param>
        /// <param name="m_strDecryptString">待解密</param>
        /// <returns></returns>
        public string RSADecrypt_String(string stringPrivateKey, string m_strDecryptString)
        {
            byte[] PlainTextBArray;
            byte[] DypherTextBArray;
            string Result;
            System.Security.Cryptography.RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
            rsa.ImportCspBlob(Convert.FromBase64String(stringPrivateKey));
            PlainTextBArray = Convert.FromBase64String(m_strDecryptString);
            DypherTextBArray = rsa.Decrypt(PlainTextBArray, false);
            Result = Encoding.UTF8.GetString(DypherTextBArray);
            return Result;
        }
posted @ 2019-08-26 11:35  TTonlyV5  阅读(1098)  评论(0编辑  收藏  举报