zoukankan      html  css  js  c++  java
  • 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;
            }
    
  • 相关阅读:
    [BZOJ 4034][HAOI2015]树上操作(欧拉序列+线段树)
    [BZOJ 4318]OSU!(期望dp)
    [Codeforces Round #146 (Div. 1) B]Let's Play Osu!(期望Dp)
    [Codeforces Round #261 (Div. 2) E]Pashmak and Graph(Dp)
    [Codeforces Round #301 (Div. 2) D]Bad Luck Island(概率Dp)
    [Codeforces Round #284 (Div. 1) B]Name That Tune(概率Dp)
    [UVALive 7143]Room Assignment(Dp)
    [BZOJ 1076][SCOI2008]奖励关(期望+状压Dp)
    【DBMS HKUST slides8】范式及分解算法 知识点总结
    【DBMS HKUST slides1~6】数据库管理系统 知识点总结
  • 原文地址:https://www.cnblogs.com/TTonly/p/11411581.html
Copyright © 2011-2022 走看看