NET非对称加密 1 密钥生成与保存 新手教程.docVIP

NET非对称加密 1 密钥生成与保存 新手教程.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NET非对称加密 1 密钥生成与保存 新手教程

NET非对称加密 1 密钥生成与保存 新手教程 阅读:23评论:0作者:玄魂发表于2010-05-13 23:27原文链接 文/玄魂 当使用一个非对称加密类创建一个该类的实例的时候,构造函数会为我们生成一个公钥/私钥对。我们可以选择是否保存该密钥和保存的方式。 我们先从代码清单1-1的内容来熟悉下非对称密钥的密钥结构。 代码清单1-1输出非对称密钥 classProgram { staticvoidMain(string args) { RSACryptoServiceProvider rcp=newRSACryptoServiceProvider(); RSAParameters parameter1=rcp.ExportParameters(true); RSAParameters parameter2=rcp.ExportParameters(false); WriteParameInfo(parameter1,parameter1); WriteParameInfo(parameter2,parameter2); Console.Read(); } privatestaticvoidWriteParameInfo(RSAParameters parameter,stringname) { Console.WriteLine(name+.D:); Console.WriteLine(ConverBitTostring(parameter.D)); Console.WriteLine(name+DP:); Console.WriteLine(ConverBitTostring(parameter.DP)); Console.WriteLine(name+.DQ); Console.WriteLine(ConverBitTostring(parameter.DQ)); Console.WriteLine(name+.InverseQ); Console.WriteLine(ConverBitTostring(parameter.InverseQ)); Console.WriteLine(name+.Modulus); Console.WriteLine(ConverBitTostring(parameter.Modulus)); Console.WriteLine(name+.P); Console.WriteLine(ConverBitTostring(parameter.P)); Console.WriteLine(name+.Q); Console.WriteLine(ConverBitTostring(parameter.Q)); Console.WriteLine(name+.Exponent); Console.WriteLine(ConverBitTostring(parameter.Exponent)); } publicstaticstringConverBitTostring(byte bytes) { if(bytes==null) { return该值为空!; } else { StringBuilder sb=newStringBuilder(); for(inti=0;i bytes.Length;i++) { sb.Append(bytes[1].ToString()); } returnsb.ToString(); } } } 在代码清单1-1中,我们首先使用RSACryptoServiceProvider rcp=new RSACryptoServiceProvider();来生成RSA实现类的实例rcp,然后调用ExportParameters方法导出密钥。ExportParameters方法的参数是bool值,如果该值为true表示可以导出私钥,否则为不可导出私钥。密钥导出的结果为RSAParameters结构,在了解该结构的各个属性值之前我们先看看输出结果,parameter1的输出结果如图1-1所示,parameter2的输出结果如图1-2所示。 图1-1 parameter1的输出结果 图1-2 parameter2的输出结果 如果您对RSA算法的原理还不是很熟悉的话,建议您在看一看相关内容,这里为了叙述图1-1和图1-2中的输出结果,我再简要说明下RSA算法: 若要生成密钥对,可以从创建名为p和q的两个大的质数开始。这两个数相乘,结果称为n。因为p和q都是质数,所以n的全部因数为1、p、q和n。如果仅考虑小于n的数,则与n为互质数(即与n没有公因数)的数的个数等于(p-1)(q-1)。现在,选择一个数e,它与计算的值为互质数。则公钥表示为{e,n}。若要创建私钥,则必须计算d,

文档评论(0)

2017meng + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档