忘了是VB了:
Shared Function Encrypt(data() As Byte, key() As Byte) As Byte()
Dim desc As DESCryptoServiceProvider = new DESCryptoServiceProvider()
Dim ms As MemoryStream = new MemoryStream()
Dim cs As CryptoStream = new CryptoStream(ms, desc.CreateEncryptor(key, key), CryptoStreamMode.Write)
cs.Write(data, 0, data.Length)
cs.FlushFinalBlock()
Return ms.ToArray()
End Function
Shared Function Decrypt(data() As Byte, key() As Byte) As Byte()
Dim desc As DESCryptoServiceProvider = new DESCryptoServiceProvider()
Dim ms As MemoryStream = new MemoryStream()
Dim cs As CryptoStream = new CryptoStream(ms,desc.CreateDecryptor(key, key),CryptoStreamMode.Write)
cs.Write(data, 0, data.Length)
cs.FlushFinalBlock()
Return ms.ToArray()
End Function
看看我的加密解密函数:
Imports System.Text
Imports System.Security.Cryptography
Imports System.IO
Public Class Encypt
'--加密函数--
'strEncrKey必须是8位或以上
Shared Function Encrypt(ByVal data As String, ByVal strEncrKey As String) As String
Try
Dim bytes() As Byte = Encoding.Unicode.GetBytes(Data)
Dim byKey() As Byte = System.Text.Encoding.UTF8.GetBytes(strEncrKey.Substring(0, 8))
Dim iv() As Byte = {1, 2, 3, 4, 5, 6, 7, 8}
Dim des As New DESCryptoServiceProvider()
Dim inputByteArray() As Byte = Encoding.UTF8.GetBytes(Data)
Dim ms As New MemoryStream()
Dim cs As New CryptoStream(ms, des.CreateEncryptor(byKey, iv), CryptoStreamMode.Write)
cs.Write(inputByteArray, 0, inputByteArray.Length)
cs.FlushFinalBlock()
Return Convert.ToBase64String(ms.ToArray())
Catch
MsgBox(Err.Description)
Return ""
End Try
End Function
'--解密函数--
'strEncrKey必须是8位或以上
Shared Function Decrypt(ByVal data As String, ByVal strEncrKey As String) As String
Try
Dim bytes() As Byte = Encoding.Unicode.GetBytes(data)
Dim byKey() As Byte = System.Text.Encoding.UTF8.GetBytes(strEncrKey.Substring(0, 8))
Dim iv() As Byte = {1, 2, 3, 4, 5, 6, 7, 8}
Dim des As New DESCryptoServiceProvider()
Dim inputByteArray() As Byte = Encoding.UTF8.GetBytes(data)
Dim ms As New MemoryStream()
inputByteArray = Convert.FromBase64String(data)
Dim cs As New CryptoStream(ms, des.CreateDecryptor(byKey, iv), CryptoStreamMode.Write)
cs.Write(inputByteArray, 0, inputByteArray.Length)
cs.FlushFinalBlock()
Return System.Text.Encoding.UTF8.GetString(ms.ToArray())
Catch
MsgBox(Err.Description)
Return ""
End Try
End Function
End Class
加密解密的Key一定要一样。
调用:
加密:
Dim out As String
out = Encypt.Encrypt(orgString,"ENCR_KEY")
解密:
dim InStr as String
InStr = Encypt.Decrypt(out,"ENCR_KEY"))