代码改变世界

C#Excel文件加密实现,支持xlsx、docx、pptx(C#\Net\Asp.Net)

2016-12-10 21:30  海豚湾  阅读(6442)  评论(3编辑  收藏  举报

从此刻开始,我已封闭!概不接客!

  像风一样的男人,像风一样的性格,无拘无束,不拘一格。那么问题来了,当风遇到沙,不一定你是风儿,我是沙儿缠缠绵绵,。也许是漫天黄沙,飞粒走石。如果我们期望擒住这漫天的尘埃,必须有强有力的手臂!那么晒网、撒网、收网!让他老实的封闭起来吧,永远相依偎,阿拉!

读在最前面:

  1、Excel文件加密实现,本文以 Microsoft Office 2007 为案例进行说明。

  2、Microsoft Office 2007  Office 基于 Open XML file(又称 OOXML or OpenXML or MOX ,是一种以XML为基础并以ZIP格式压缩的电子文件规范,支持文件、表格、备忘录、幻灯片等文件格式)

  3、本文可实现C端Excel加密、S端Excel加密(不需要安装任何服务器组件,告别一切烦恼)。

  4、本文加密方式可实现对.docx, .xlsx, .pptx等文件类型的加密。

 

那么,让我们上酸菜!

1、下载我们的依赖组件

加密组件下载 

2、加密!开工!Over!

 项目中引入NPOI.POIFS.dll,NPOI.Util.dll,OfficeOpenXmlCrypto.dll ,细节实现代码如下:

using (OfficeCryptoStream stream = OfficeCryptoStream.Open(@"location"))
{
     stream.Password = "password";
     stream.Save();
}

   备注:

   1、代码说明:location:加密文件路径,password:加密密码

      2、加密原理:基于AES128 ,加密秘钥生成方式:SHA1,具体加密技术细节参见MS-OFFCRYPTO

   3、其他加密技术栈: EPPlus class library,OpenXml 2.0 SDK 参见爆炸网类似加密qa

   4、如果在iis上部署,需要启用网站对应应用程序池的32位模式。

   5、参考链接(全是墙,自备VPN):

     (1)、http://www.lyquidity.com/devblog/?p=35

     (2)、https://msdn.microsoft.com/en-us/library/cc313071.aspx

     (3)、https://en.wikipedia.org/wiki/Office_Open_XML

     (4)、https://code.google.com/archive/p/ooxmlcrypto/

 

 by:海豚湾-丰