Excel的加密和解密
在做各种项目的时候,如果涉及到公司内部的数据,或者其他的保密的数据,就需要用到Excel的加密和解密。
其实,就是用到了两个函数,加密函数和解密函数。
加密函数:
<span style="font-size:24px;">PublicFunction EncryptDes(ByVal SourceStr As String, ByVal myKey As String, ByValmyIV As String) As String '使用的DES对称加密
Dim des As NewSystem.Security.Cryptography.DESCryptoServiceProvider 'DES算法
'Dim DES As NewSystem.Security.Cryptography.TripleDESCryptoServiceProvider'TripleDES算法
Dim inputByteArray As Byte()
inputByteArray =System.Text.Encoding.Default.GetBytes(SourceStr)
des.Key = System.Text.Encoding.UTF8.GetBytes(myKey)'myKey DES用8个字符,TripleDES要24个字符
des.IV =System.Text.Encoding.UTF8.GetBytes(myIV) 'myIV DES用8个字符,TripleDES要24个字符
Dim ms As New System.IO.MemoryStream
Dim cs As NewSystem.Security.Cryptography.CryptoStream(ms, des.CreateEncryptor(),System.Security.Cryptography.CryptoStreamMode.Write)
Dim sw As NewSystem.IO.StreamWriter(cs)
sw.Write(SourceStr)
sw.Flush()
cs.FlushFinalBlock()
ms.Flush()
EncryptDes =Convert.ToBase64String(ms.GetBuffer(), 0, ms.Length)
End Function</span>
解密函数:
<span style="font-size:24px;">PublicFunction DecryptDes(ByVal SourceStr As String, ByVal myKey As String, ByValmyIV As String) As String '使用标准DES对称解密
Dim des As NewSystem.Security.Cryptography.DESCryptoServiceProvider 'DES算法
'Dim DES As NewSystem.Security.Cryptography.TripleDESCryptoServiceProvider'TripleDES算法
des.Key =System.Text.Encoding.UTF8.GetBytes(myKey) 'myKey DES用8个字符,TripleDES要24个字符
des.IV =System.Text.Encoding.UTF8.GetBytes(myIV) 'myIV DES用8个字符,TripleDES要24个字符
Dim buffer As Byte() =Convert.FromBase64String(SourceStr)
Dim ms As New System.IO.MemoryStream(buffer)
Dim cs As NewSystem.Security.Cryptography.CryptoStream(ms, des.CreateDecryptor(),System.Security.Cryptography.CryptoStreamMode.Read)
Dim sr As NewSystem.IO.StreamReader(cs)
DecryptDes = sr.ReadToEnd()
End Function</span>
具体如何使用呢,就是非常的简单,在程序中需要导出Excel的时候,添加两句代码进行加密,在导入Excel的时候,同样的添加两句代码进行解密即可。