学习VB.NET时,你可能会遇到VB.NET编写DEC加密程序问题,这里将介绍VB.NET编写DEC加密程序问题的解决方法,在这里拿出来和大家分享一下。

在VB.NET编写DEC加密程序是很容易的事情,因为VB.NET的类库中就自带了相应的函数,下面分别是加密函数和解密函数。
加密函数:
- Public Shared Function Encrypt(ByVal pToEncrypt As String,
 
ByVal sKey As String) As String- Dim des As New DESCryptoServiceProvider()
 - Dim inputByteArray() As Byte
 - inputByteArray = Encoding.Default.GetBytes(pToEncrypt)
 - ''建立加密对象的密钥和偏移量
 - ''原文使用ASCIIEncoding.ASCII方法的GetBytes方法
 - ''使得输入密码必须输入英文文本
 - des.Key = ASCIIEncoding.ASCII.GetBytes(sKey)
 - des.IV = ASCIIEncoding.ASCII.GetBytes(sKey)
 - ''写二进制数组到加密流
 - ''(把内存流中的内容全部写入)
 - Dim ms As New System.IO.MemoryStream()
 - Dim cs As New CryptoStream(ms, des.CreateEncryptor, CryptoStreamMode.Write)
 - ''写二进制数组到加密流
 - ''(把内存流中的内容全部写入)
 - cs.Write(inputByteArray, 0, inputByteArray.Length)
 - cs.FlushFinalBlock()
 - ''建立输出字符串
 - Dim ret As New StringBuilder()
 - Dim b As Byte
 - For Each b In ms.ToArray()
 - ret.AppendFormat("{0:X2}", b)
 - Next
 - Return ret.ToString()
 - End Function
 
解密函数:
- Public Shared Function Decrypt(ByVal pToDecrypt As String,
 
ByVal sKey As String) As String- Dim des As New DESCryptoServiceProvider()
 - ''把字符串放入byte数组
 - Dim len As Integer
 - len = pToDecrypt.Length / 2 - 1
 - Dim inputByteArray(len) As Byte
 - Dim x, i As Integer
 - For x = 0 To len
 - i = Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16)
 - inputByteArray(x) = CType(i, Byte)
 - Next
 - ''建立加密对象的密钥和偏移量,此值重要,不能修改
 - des.Key = ASCIIEncoding.ASCII.GetBytes(sKey)
 - des.IV = ASCIIEncoding.ASCII.GetBytes(sKey)
 - Dim ms As New System.IO.MemoryStream()
 - Dim cs As New CryptoStream(ms, des.CreateDecryptor,
 
CryptoStreamMode.Write)- cs.Write(inputByteArray, 0, inputByteArray.Length)
 - cs.FlushFinalBlock()
 - Return Encoding.Default.GetString(ms.ToArray)
 - End Function
 
两个函数中***个参数是待加密或解密的字符串,sKey是使用的密钥,必须是8位,使用的时候要注意哦,不然会出错的。以上介绍VB.NET编写DEC加密程序。