.NET 实现RSA加密解密 C#

本文介绍了.NET中使用RSA加密解密的方法,包括如何生成密钥对,详细讲解了加密和解密的步骤,适用于保障信息安全的场景。通过引用System.Security.Cryptography程序集,利用RSACryptoServiceProvider进行操作。
摘要由CSDN通过智能技术生成


RSA

在项目中经常会使用到一些加密场合,恰好最近有用到RSA加密解密算法,以此篇文章记录一下。
RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)。
.net实现RSA加密解密算法需要引用System.Security.Cryptography程序集。通过RSACryptoServiceProvider方法来实现操作。


一、生成密钥

在这里插入图片描述
公钥文件
在这里插入图片描述

/// <summary>
        ///在给定路径中生成XML格式的私钥和公钥。
        /// </summary>
        public void GenerateKeys(string path)
        {
   
            using (var rsa = new RSACryptoServiceProvider(RsaKeySize))
            {
   
                try
                {
   
                    // 获取私钥和公钥。
                    var publicKey = rsa.ToXmlString(false);
                    var privateKey = rsa.ToXmlString(true);

                    // 保存到磁盘
                    File.WriteAllText(Path.Combine(path, publicKeyFileName), publicKey);
                    File.WriteAllText(Path.Combine(path, privateKeyFileName), privateKey);

                    MessageBox.Show(string.Format("生成的RSA密钥的路径: {0}\\ [{1}, {2}]", path, publicKeyFileName, privateKeyFileName));
                }
                finally
                {
   
                    rsa.PersistKeyInCsp = false;
                }
            }
        }

二、加密解密

1.加密

在这里插入图片描述

/// <summary>
        /// 用给定路径的RSA公钥文件加密纯文本。
        /// </summary>
        /// <param name="plainText">要加密的文本</param>
        /// <param name="pathToPublicKey">用于加密的公钥路径.</param>
        /// <returns>表示加密数据的64位编码字符串.</returns>
        public string Encrypt(string plainText, string pathToPublicKey)
        {
   
            using (var rsa = new RSACryptoServiceProvider(RsaKeySize))
            {
   
             
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值