16,721
社区成员




Private Function Encrypt(ByVal plainText As String, ByVal key As String) As String
Dim AES As New RijndaelManaged()
Dim MD5 As New MD5CryptoServiceProvider()
Dim plainTextData As Byte() = Encoding.Unicode.GetBytes(plainText)
Dim keyData As Byte() = MD5.ComputeHash(Encoding.UTF8.GetBytes(key))
Dim IVData As Byte() = MD5.ComputeHash(Encoding.UTF8.GetBytes("Alex Lee"))
AES.Key = keyData
AES.Mode = CipherMode.CFB
AES.Padding = PaddingMode.Zeros
Dim transform As ICryptoTransform = AES.CreateEncryptor()
Dim outputData As Byte() = transform.TransformFinalBlock(plainTextData, 0, plainTextData.Length)
Encrypt = Convert.ToBase64String(outputData)
End Function
'解密
Private Function Decrypt(ByVal cipherTextData As Byte(), ByVal key As String) As String
Dim AES As New RijndaelManaged()
Dim MD5 As New MD5CryptoServiceProvider()
Dim keyData As Byte() = MD5.ComputeHash(Encoding.UTF8.GetBytes(key))
Dim IVData As Byte() = MD5.ComputeHash(Encoding.UTF8.GetBytes("Alex Lee"))
AES.Key = keyData
AES.Mode = CipherMode.CFB
AES.Padding = PaddingMode.Zeros
Dim transform As ICryptoTransform = AES.CreateDecryptor()
Dim outputData As Byte() = transform.TransformFinalBlock(cipherTextData, 0, cipherTextData.Length)
Decrypt = Encoding.UTF8.GetString(outputData)
End Function
Private Function Encrypt(ByVal plainText As String, ByVal key As String) As String
Dim AES As New RijndaelManaged()
Dim MD5 As New MD5CryptoServiceProvider()
Dim plainTextData As Byte() = Encoding.Unicode.GetBytes(plainText)
Dim keyData As Byte() = MD5.ComputeHash(Encoding.UTF8.GetBytes(key))
Dim IVData As Byte() = MD5.ComputeHash(Encoding.UTF8.GetBytes("Alex Lee"))
AES.Key = keyData
AES.IV = IVData '加密/解密都没有设置初始化向量'
AES.Mode = CipherMode.CFB
AES.Padding = PaddingMode.Zeros
Dim transform As ICryptoTransform = AES.CreateEncryptor()
Dim outputData As Byte() = transform.TransformFinalBlock(plainTextData, 0, plainTextData.Length)
Encrypt = Convert.ToBase64String(outputData)'Base-64 可以正常工作,你的问题不在这里'
End Function
Private Function Decrypt(ByVal ciphertext As String, ByVal key As String) As String
Dim ciphertextdata As Byte() = Convert.FromBase64String(ciphertext)
Dim AES As New RijndaelManaged()
Dim MD5 As New MD5CryptoServiceProvider()
Dim keyData As Byte() = MD5.ComputeHash(Encoding.UTF8.GetBytes(key))
Dim IVData As Byte() = MD5.ComputeHash(Encoding.UTF8.GetBytes("Alex Lee"))
AES.Key = keyData
AES.IV = IVData '加密/解密都没有设置初始化向量'
AES.Mode = CipherMode.CFB
AES.Padding = PaddingMode.Zeros
Dim transform As ICryptoTransform = AES.CreateDecryptor()
Dim outputData As Byte() = transform.TransformFinalBlock(ciphertextdata, 0, ciphertextdata.Length)
Decrypt = Encoding.Unicode.GetString(outputData)
End Function
Public Shared Function DESDecrypt(ByVal strSource As String, Optional ByVal strPassWordKey As String = Nothing) As String
'解密字符串
Try
Dim des As New DESCryptoServiceProvider
'把字符串放入byte数组
Dim len As Integer = strSource.Length / 2 - 1
Dim inputByteArray(len) As Byte
Dim x, i As Integer
If strPassWordKey = Nothing Then
strPassWordKey = LoginPassWordKey.Substring(0, 8)
ElseIf strPassWordKey.Length <> 8 Then
strPassWordKey = (strPassWordKey & LoginPassWordKey).Substring(0, 8)
End If
For x = 0 To len
i = Convert.ToInt32(strSource.Substring(x * 2, 2), 16)
inputByteArray(x) = CType(i, Byte)
Next
'建立加密对象的密钥和偏移量,此值重要,不能修改
des.Key = ASCIIEncoding.ASCII.GetBytes(strPassWordKey)
des.IV = ASCIIEncoding.ASCII.GetBytes(strPassWordKey)
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)
Catch ex As Exception
Return strSource
End Try
End Function