Visual Basic.Net AES加密函数
2014-12-09 11:51
288 查看
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
相关文章推荐
- 官方水晶报表 .NET 应用程序实例下载 (Visual Basic .NET)
- Visual Basic .NET资源工具包
- 从过去到未来、 从Visual和Basic到Net。(从VB到VB.NET的12个技巧)(三)
- Visual Basic.Net 如何操作内存?
- 与Visual Basic .NET一起使用.NET Framework
- Top 10 Reasons to Upgrade to Visual Basic .NET
- 阻止 Visual Basic .NET 或 C# 代码的反向工程
- 从过去到未来、 从Visual和Basic到Net。(从VB到VB.NET的12个技巧)(二)
- Working with Multiple Forms in Visual Basic .NET: Upgrading to .NET
- Visual Basic.NET和GDI+共创图标编辑器
- 将Visual Basic 6.0程序转换到Visual Basic.NET
- 效率提高两倍!——Visual Basic.net 新力量
- Visual Basic.NET探密
- HOW TO: Upload a File to a Web Server in ASP.NET by Using Visual Basic .NET
- Visual Basic .NET Power Pack 简介
- 从 Visual Basic 6.0 到 Visual Basic.NET 的转换
- 复杂和高效——Visual Basic.net新力量
- Visual Basic.NET探密
- 从过去到未来、 从Visual和Basic到Net。(从VB到VB.NET的12个技巧)
- 阻止 Visual Basic .NET 或 C# 代码的反向工程