Mã Hóa Và Giải Mã MD5 Trong VB.NET | Blog Của BÙI QUANG HIỂN
Có thể bạn quan tâm
Trong nhiều chương trình, người lập trình thường sử dụng các hàm mã hóa để mã hóa mật khẩu hoặc mã hóa các thông tin không muốn người khác đọc được. Dưới đây xin được giới thiệu đến các bạn cách mã hóa và giải mã theo dạng MD5 (hàm này có sẵn trong PHP) trong VB.NET
MÃ HÓA
Trước tiên bạn cần IMPORT 2 thư viện này vào đã
Imports System.Text Imports System.Security.Cryptography
Public Function MD5(ByVal chuoi_nguon As String) As String ‘Tạo đối tượng mã hóa dạng ASCII để mã hóa chuỗi ký tự Dim ASCIIenc As New ASCIIEncoding Dim strReturn As String ‘Lấy mảng byte của nguồn văn bản Dim ByteSourceText() As Byte = ASCIIenc.GetBytes(chuoi_nguon) ‘Cài đặt chuẩn mã hóa MD5 Dim Md5Hash As New MD5CryptoServiceProvider ‘Tính giá trị bảng mã của nguồn văn bản Dim ByteHash() As Byte = Md5Hash.ComputeHash(ByteSourceText) ‘Tạo vòng lặp để chuyển đổi bảng mã sang một chuỗi văn bản For Each b As Byte In ByteHash ‘Chuyển các byte sang dạng chuỗi strReturn &= b.ToString(“x2”) Next ‘Trả lại hàm Return strReturn
End Function
GIẢI MÃ
Dưới đây là 1 lớp giải mã Giải thuật mã hóa MD5, được viết bằng VB.NET các bạn viết bằng ASP.NET hoàn toàn sử dụng tốt mã nguồn này.
Trước tiên bạn cần Import thư viện này vào trước Lớp của bạn:
Import System.Security.Cryptography
Friend Shared Function DecryptPasswordMD5(ByVal cipherText As String, ByVal p_strSaltValue As String) As String
Dim strReturn As String = String.Empty
‘Chuyển đổi chuỗi mã hóa xác định đặc điểm chính vào byte _ giả sử mã chúng ta chứa các ký tự thuộc bảng mã ASCII, ngoài ra chúng cũng hỗ trợ về các mã Unicode. Try Dim initVectorBytes As Byte() initVectorBytes = System.Text.Encoding.ASCII.GetBytes(m_strInitVector)
Dim saltValueBytes As Byte() saltValueBytes = System.Text.Encoding.ASCII.GetBytes(p_strSaltValue)
‘ Chuyển đổi văn bản mã hóa thành bảng byte Dim cipherTextBytes As Byte() cipherTextBytes = Convert.FromBase64String(cipherText)
‘Lấy mật khảu đã được mã hóa
Dim password As Rfc2898DeriveBytes
password = New Rfc2898DeriveBytes(m_strPassPhrase, _ saltValueBytes, _ m_strPasswordIterations)
‘Giải mã mật khẩu theo các byte, sau đó xác định kích thước file nguồn. Dim keyBytes As Byte() Dim intKeySize As Integer
intKeySize = CType((m_intKeySize / 8), Integer)
keyBytes = password.GetBytes(intKeySize)
Dim symmetricKey As System.Security.Cryptography.RijndaelManaged symmetricKey = New System.Security.Cryptography.RijndaelManaged
Dim decryptor As System.Security.Cryptography.ICryptoTransform decryptor = symmetricKey.CreateDecryptor(keyBytes, initVectorBytes)
‘Xác định bộ nhớ được dùng giải mã Dim memoryStream As System.IO.MemoryStream memoryStream = New System.IO.MemoryStream(cipherTextBytes)
‘Xác định bộ nhớ đã được mã hóa Dim cryptoStream As System.Security.Cryptography.CryptoStream cryptoStream = New System.Security.Cryptography.CryptoStream(memoryStream, _ decryptor, _ System.Security.Cryptography.CryptoStreamMode.Read)
‘Cấp phát bộ nhớ Dim plainTextBytes As Byte() ReDim plainTextBytes(cipherTextBytes.Length)
‘ Bắt đầu giải mã Dim decryptedByteCount As Integer decryptedByteCount = cryptoStream.Read(plainTextBytes, _ 0, _ plainTextBytes.Length)
‘Giải phóng bộ nhớ memoryStream.Close() cryptoStream.Close()
‘Đưa dữ liệu vào chuỗi Dim plainText As String plainText = System.Text.Encoding.UTF8.GetString(plainTextBytes, _ 0, _ decryptedByteCount)
‘Trả về chuỗi đích strReturn = plainText
Catch ex As Exception strReturn = Nothing End Try
Return strReturn
End Function
End Class
Qua ví dụ về cách tạo lớp này bạn hoàn toàn có thể giải mã các định dạng mã hóa theo chuẩn MD5. Nhưng tôi đoán tất nhiên có nhiều khúc mắc về cách sử dụng Lớp dẫn này, rất mong được sự góp ý của các bạn, để tôi dần hoàn thiện hơn về mã nguồn cho thuật toán này. CẢM ƠN CÁC BẠN ĐÃ QUAN TÂM HI VỌNG ĐƯỢC SỰ ĐÓNG GÓP Ý KIẾN CỦA CÁC BẠN!
Chia sẻ:
- X
Có liên quan
Từ khóa » Thư Viện Md5
-
C# - Thư Viện Mã Hóa MD5 | Cộng đồng AutoIT Vietnam
-
MD5 Là Gì? - Thư Viện Hỏi Đáp
-
Hash MD5, SHA Và Các Loại Khác Trên Java - Tân Một Nắng Blog
-
Một Số Loại Mã Hóa Thường Dùng - Viblo
-
Hướng Dẫn Mã Hóa Mật Khẩu 1 Chiều Với MD5 Trong C# - TUAN DC
-
Mã Hóa Mật Khẩu Bằng MD5 Trong Java - Deft Blog
-
GÓC HỌC TẬP: Code Mã Hóa MD5 Trong C# - Blogger
-
Tìm Hiểu Và Phân Tích đánh Giá độ An Toàn Của Thuật Toán MD5 - VNU
-
Mã Hóa MD5 Với C# - Lập Trình VB.NET
-
Mã Hóa Md5 Trong Java
-
Hướng Dẫn Kiểm Tra MD5 - FastCA
-
Check Mã MD5 Bằng C# - Hoàng Phong