c#,随机生成RSA公私钥,并写入文件夹

        /// <summary>
        /// 生成RSA加密算法的私钥和公钥,两个参数分别表示私钥和公钥文件存放的路径
        /// </summary>
        /// <param name="PrivateKeyPath">传入存放私钥文件名</param>
        /// <param name="PublicKeyPath">传入存放公钥文件名</param>
        public void RSAKey(string PrivateKeyPath, string PublicKeyPath)
        {
            try
            {
                //首先使用RSACryptoServiceProvider provider = new RSACryptoServiceProvider();来生成RSA实现类的实例provider。
                RSACryptoServiceProvider provider = new RSACryptoServiceProvider();

                //provider.ToXmlString()函数导出包含当前RSA对象密钥的XML字符串。true表示同时包含RSA公钥和私钥;false表示仅包含公钥。
                //下面两个自定义函数分别用来创建存放私钥和公钥的文件               
                this.CreateKeyXML(PrivateKeyPath, provider.ToXmlString(true));//调用函数创建文件
                this.CreateKeyXML(PublicKeyPath, provider.ToXmlString(false));
            }
            catch (Exception exception)
            {
                throw exception;
            }
        }
        /// <summary>
        /// 创建公私钥文件
        /// </summary>
        /// <param name="path">文件路径</param>
        /// <param name="ppkey">RSA实现类的实例provider的XML字符串</param>
        public void CreateKeyXML(string path, string ppkey)
        {
            try
            {
                //FileStream 构造函数 (String, FileMode) 使用指定的路径和创建模式初始化 FileStream 类的新实例
                //而FileMode有Open、Append、Create等模式
                FileStream ppkeyxml = new FileStream(path, FileMode.Create);

                //StreamWriter 构造函数 (Stream) 用 UTF-8 编码及默认缓冲区大小,为指定的流初始化 StreamWriter 类的一个新实例。
                StreamWriter sw = new StreamWriter(ppkeyxml);

                //FileStream对象表示在磁盘或网络路径上指向文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader
                //或StreamWriter执行这些功能。这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据。

                sw.WriteLine(ppkey);
                sw.Close();
                ppkeyxml.Close();
            }
            catch
            {
                throw;
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值