/// <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;
}
}
c#,随机生成RSA公私钥,并写入文件夹
最新推荐文章于 2024-08-08 09:04:20 发布