RSA非对称加密代码

1. 创建一个CspParameters类的新实例,并传递您要呼叫的密钥容器名称到CspParameters.KeyContainerName域。
2. 创建一个新的RSACryptoServiceProvider实例,并传递CsParameter到它的构造器.
3. 创建字节数组来保存原始,加密和解密数据.
4. 通过字节数组的数据加密方法和加密字节数组得到的结果.
5. 这个字节数组数据转换为其等效的字符串,通过使用Convert.ToBase64String显示在多行文本框中.

加密算法:

        /// <summary>
        /// 解密文本
        /// </summary>
        /// <param name="plaintext"></param>
        public static string RSAEncryption(string strKeyContainerName, string plaintext)
        {
            CspParameters param = new CspParameters();
            param.KeyContainerName = strKeyContainerName;
            using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(param))
            {
                byte[] plaindata = System.Text.Encoding.Default.GetBytes(plaintext);
                byte[] encryptdata = rsa.Encrypt(plaindata, false);
                string encryptstring = Convert.ToBase64String(encryptdata);
                return encryptstring;
            }
            return string.Empty;
        }

解密算法:

        /// <summary>
        /// 解密文本
        /// </summary>
        /// <param name="strKeyContainerName"></param>
        /// <param name="encryptData"></param>
        public static string RSADecryption(string strKeyContainerName,string encryptData)
        {
            CspParameters param = new CspParameters();
            param.KeyContainerName = strKeyContainerName;
            using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(param))
            {
                byte[] encryptdata = Convert.FromBase64String(encryptData);
                byte[] decryptdata = rsa.Decrypt(encryptdata, false);
                string plaindata = System.Text.Encoding.Default.GetString(decryptdata);
                return plaindata;
            }
            return string.Empty;
        }

 请到我的文件中下载程序全部代码。

posted @ 2013-02-28 15:07  左立军  阅读(878)  评论(0编辑  收藏  举报