从此刻开始,我已封闭!概不接客!
像风一样的男人,像风一样的性格,,无拘无束,不拘一格。那么问题来了,当风遇到沙,不一定你是风儿,我是沙儿的缠缠绵绵,。也许是漫天黄沙,飞粒走石。如果我们期望擒住这漫天的尘埃,必须有强有力的手臂!那么晒网、撒网、收网!让他老实的封闭起来吧,永远相依偎,阿拉!
读在最前面:
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)、?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/