Imports System.Text
Imports System.Security.Cryptography
Imports System.IO
Public Class clsAES
'加密函数
Public Function AESEncrypt(ByVal sText As String, ByVal sKey As String, ByVal sIV As String) As String
If sText Is Nothing OrElse sText.Length <= 0 Then Throw New ArgumentNullException("sText")
If sKey Is Nothing OrElse sKey.Length <= 0 Then Throw New ArgumentNullException("sKey")
If sIV Is Nothing OrElse sIV.Length <= 0 Then Throw New ArgumentNullException("sIV")
Dim arrReturn() As Byte
Using objAES As New RijndaelManaged()
Using objMD5 As New MD5CryptoServiceProvider
objAES.Key = objMD5.ComputeHash(Encoding.UTF8.GetBytes(sKey))
objAES.IV = objMD5.ComputeHash(Encoding.UTF8.GetBytes(sIV))
Dim objITF As ICryptoTransform = objAES.CreateEncryptor(objAES.Key, objAES.IV)
Using objMS As New MemoryStream()
Using objCS As New CryptoStream(objMS, objITF, CryptoStreamMode.Write)
Using objSW As New StreamWriter(objCS)
objSW.Write(sText)
End Using
arrReturn = objMS.ToArray()
End Using
End Using
End Using
End Using
Return Convert.ToBase64String(arrReturn)
End Function
'解密函数
Public Function AESDecrypt(ByVal sWord As String, ByVal sKey As String, ByVal sIV As String) As String
If sWord Is Nothing OrElse sWord.Length <= 0 Then Throw New ArgumentNullException("sWord")
If sKey Is Nothing OrElse sKey.Length <= 0 Then Throw New ArgumentNullException("sKey")
If sIV Is Nothing OrElse sIV.Length <= 0 Then Throw New ArgumentNullException("sIV")
Dim sReturn As String = Nothing
Using objAES As New RijndaelManaged
Using objMD5 As New MD5CryptoServiceProvider
objAES.Key = objMD5.ComputeHash(Encoding.UTF8.GetBytes(sKey))
objAES.IV = objMD5.ComputeHash(Encoding.UTF8.GetBytes(sIV))
Dim objITF As ICryptoTransform = objAES.CreateDecryptor(objAES.Key, objAES.IV)
Using objMS As New MemoryStream(Convert.FromBase64String(sWord))
Using objCS As New CryptoStream(objMS, objITF, CryptoStreamMode.Read)
Using objSR As New StreamReader(objCS)
sReturn = objSR.ReadToEnd()
End Using
End Using
End Using
End Using
End Using
Return sReturn
End Function
End Class
Visual Basic.Net AES加密函数
最新推荐文章于 2015-03-15 00:47:38 发布