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;
        }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM