.net c# RSA使用公私钥加密解密源码

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

RSA是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。

RSA 加密和解密,第一步需要想创建公钥和私钥

        private static int rsakeysize = 2048;
        public static string publickeyname = "rsa.pub";
        public static string privatekeyname = "rsa.private";

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

                    string pathfile = Path.GetDirectoryName(path);
                    if (!Directory.Exists(pathfile)) { Directory.CreateDirectory(pathfile); }

                    // 保存到磁盘
                    File.WriteAllText(Path.Combine(path, publickeyname), publicKey);
                    File.WriteAllText(Path.Combine(path, privatekeyname), privateKey);
                }
                finally
                {
                    rsa.PersistKeyInCsp = false;
                }
            }
        }

使用生成的公钥来进行加密

        /// <summary>
        /// 用给定路径的RSA公钥文件加密纯文本。
        /// </summary>
        /// <param name="str">要加密的文本</param>
        /// <param name="publickkey">用于加密的公钥路径.</param>
        /// <returns>表示加密数据的64位编码字符串.</returns>
        public static string RsaEncrypt(string str, string publickkey)
        {
            using (var rsa = new RSACryptoServiceProvider(rsakeysize))
            {
                try
                {
                    //加载公钥
                    var publicxmlkey = File.ReadAllText(publickkey);
                    rsa.FromXmlString(publicxmlkey);
                    var bytesToEncrypt = System.Text.Encoding.Unicode.GetBytes(str);
                    var bytesEncrypted = rsa.Encrypt(bytesToEncrypt, false);
                    return Convert.ToBase64String(bytesEncrypted);
                }
                finally
                {
                    rsa.PersistKeyInCsp = false;
                }
            }
        }

使用生成的私钥来进行解密

        /// <summary>
        /// Decrypts encrypted text given a RSA private key file path.给定路径的RSA私钥文件解密 加密文本
        /// </summary>
        /// <param name="str">加密的密文</param>
        /// <param name="privatekey">用于加密的私钥路径.</param>
        /// <returns>未加密数据的字符串</returns>
        public static string RsaDecrypt(string str, string privatekey)
        {
            using (var rsa = new RSACryptoServiceProvider(rsakeysize))
            {
                try
                {
                    var privateXmlKey = File.ReadAllText(privatekey);
                    rsa.FromXmlString(privateXmlKey);
                    var bytesEncrypted = Convert.FromBase64String(str);
                    var bytesPlainText = rsa.Decrypt(bytesEncrypted, false);
                    return System.Text.Encoding.Unicode.GetString(bytesPlainText);
                }
                finally
                {
                    rsa.PersistKeyInCsp = false;
                }
            }
        }

在很多项目中,通常由我们生成公钥给对方,让对方调用我们的接口时,先将数据加密,然后我们用私钥进行解密,确保数据传输的安全.

附件:下载该文件资源,减少时间成本(增值服务)
.net RSA加密算法源码
源码中包含md5加密算法,DES加密算法,RSA加密算法,SHA加密算法等,后期将不断补充加密算法在其中
不商用,只限学习使用,使用后请删除
上传者拥有该资源完整版权,下载既表明已授权您可以进行报备商用,无报备或者使用后报备,视为侵权,报备后使用,为合法有效使用,报备方式,下载后,在下载列表,点击报备,填写使用场景即可
文件部分展示图(单击放大)
.net RSA加密算法源码.net RSA加密算法源码.net RSA加密算法源码.net RSA加密算法源码
留言
该资源可下载
File Source
.rar
88.93 KB
.net RSA加密算法源码.net RSA加密算法源码.net RSA加密算法源码.net RSA加密算法源码
最新结算
股权转让协议意向书模板
类型: .docx 金额: CNY 2.23¥ 状态: 待结算 详细>
股权转让协议意向书模板
类型: .docx 金额: CNY 0.28¥ 状态: 待结算 详细>
CSS3图片向上3D翻转渐隐消失特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3图片向上3D翻转渐隐消失特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
.net c# 将金额转人名币大写金额
类型: .rar 金额: CNY 2.39¥ 状态: 待结算 详细>
.net c# 将金额转人名币大写金额
类型: .rar 金额: CNY 0.3¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 2.23¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 0.28¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 2.23¥ 状态: 待结算 详细>
合伙退伙协议书范本模板
类型: .doc 金额: CNY 0.28¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章