一种基于C语言与CAPICOM组件数字信封技术实现方法.docVIP

一种基于C语言与CAPICOM组件数字信封技术实现方法.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文档。上传文档
查看更多
一种基于C语言与CAPICOM组件数字信封技术实现方法

一种基于C#语言与CAPICOM组件的数字信封技术实现方法   摘 要:文章介绍了一种利用CAPICOM组件以及C#语言来实现数字信封技术的方法。希望通过文章的分析,能够为相关人士提供一定的参考和借鉴。   关键词:数字信封;CAPICOM;C#语言   引言   随着互联网以及移动通信技术的的发展,人们之间的信息交流已经越来越依赖计算机通信工具。然而普通的计算机通信工具,如邮件,QQ,微信等都不支持信息加密传输。这样人们在互联网通信的时候信息的安全不能得到保障,导致信息泄密事件层出不穷。而实际上信息加密的技术目前已经非常成熟,比如数字信封技术是一种公认有效并且安全的技术。文章将介绍一种数字信封技术的具体实现方法。   1 数字信封与CAPICOM简介   数字信封是公钥密码体制在实际中的一个应用,是用加密技术来保证只有规定的特定收信人才能阅读通信的内容。   数字信封技术通过接收方的公钥加密对称密码算法密钥,并用对称密钥加密信息,那么只有接收方(即持有私钥的人)才能解开该对称密钥,然后再利用该密钥解开密文。也就是说只有一个人,即持有私钥的接收方才能解密信息,而其他人只能看到加密后的信息即图示的密文(打开是一堆乱码),这样就保证了信息的机密性。   CAPICOM 的全名是 Cryptographic API Component Object Model,是微软的Windows操作系统里的一个安全组件。通过CAPICOM可以实现以数字方式签署数据、代码、验证数字签章、将数据报文装起来做为私人之用、杂凑数据、将数据加密解密等功能。   2 基于CAPICOM组件的数字信封C#算法实现   我们通过CAPICOM组件以及C#语言来实现数字信封算法,即实现通过数字信封技术来封装加密信息,并通过数字信封技术来解密被加密的信息的功能。   我们的算法主要包括两个函数:   String EvelopeInformation(string plainString,string publicCertificationPath )   该函数提供通过数字信封技术来封装数据的功能:其中参数plainString是需要加密的数据, publicCertificationPath是数据接收方的公钥证书路径。函数处理完毕返回封装后的数据即密文。密文采用3DES,128位加密算法加密,密钥使用RSA加密算法。   public static string DeEvelopeInformation (string envelopedString)   该函数提供解密数字信封的功能:其中参数envelopedString是需要解密的数字信封密文。注意,这里我们不提供接收方私钥证书的路径参数,所以要求接收方的私钥证书安装在本人使用的计算机的用户证书存储区内。函数处理完毕返回数字信封封装前的数据即明文   我们的数字信封技术C#语言实现的全部代码与相关注释如下:   using System;   using Interop.CAPICOM;   namespace NET.Envelope   {   public class CapicomEnvelope   {   ///   ///数字信封加密封装数据(信息通过3DES,128位加密,密钥使用RSA加密算法)   ///   public static string EvelopeInformation(string plainString,string publicCertificationPath )   {   try   {   EnvelopedData envelopedData;   ICertificate2 iCertificate;   envelopedData = new EnvelopedData();   iCertificate = new Certificate();   iCertificate.Load(   publicCertificationPath,   null,   CAPICOM_KEY_STORAGE_FLAG.CAPICOM_KEY_STORAGE_DEFAULT,   CAPICOM_KEY_LOCATION.CAPICOM_CURRENT_USER_KEY   );   envelopedData.Content = plainString;   envelopedData.Algorithm.Name = CAPICOM_ENCRYPTION_ALGORITHM.CAPICOM_ENCRYPTION_ALGORITHM_3DES;   enveloped

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档