16,719
社区成员
发帖
与我相关
我的任务
分享 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 FunctionPrivate 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
学习来的