Thủ Thuật
  • TOP Thủ Thuật
    • Thủ Thuật Internet
    • Thủ Thuật Máy Tính
    • Thủ Thuật Tiện Ích
    • Thủ Thuật Phần Mềm
  • Chia Sẻ Kiến Thức
    • Học Excel
    • Học Word
    • Học Power Point
  • Games
  • Kênh Công Nghệ
  • Facebook
  • WordPress
  • SEO
No Result
View All Result
Thủ Thuật
  • TOP Thủ Thuật
    • Thủ Thuật Internet
    • Thủ Thuật Máy Tính
    • Thủ Thuật Tiện Ích
    • Thủ Thuật Phần Mềm
  • Chia Sẻ Kiến Thức
    • Học Excel
    • Học Word
    • Học Power Point
  • Games
  • Kênh Công Nghệ
  • Facebook
  • WordPress
  • SEO
No Result
View All Result
Thủ Thuật
No Result
View All Result
Home Chia Sẻ Kiến Thức Học Excel

Mã Hóa Chuỗi trong VBA: Tối Ưu So Sánh Chuỗi

Mã Hóa Chuỗi trong VBA: Tối Ưu So Sánh Chuỗi
6k
SHARES
19.5k
VIEWS
Share on Facebook

Nội Dung Bài Viết

Toggle
  • Chuẩn Bị Môi Trường
  • Hàm Test: Thử Nghiệm Mã Hóa
  • Các Hàm Mã Hóa
    • MD5
    • SHA1, SHA256, SHA384, SHA512
    • StrToSHA512Salt
  • Hàm Chuyển Đổi
  • Kết Luận

Bài viết này hướng dẫn cách sử dụng VBA để mã hóa chuỗi, giúp so sánh chuỗi hiệu quả và nhanh chóng. Các thuật toán được hỗ trợ bao gồm MD5, SHA1, SHA2-256, SHA2-384 và SHA2-512. Để chạy được đoạn mã, máy tính của bạn cần cài đặt .NET Framework 3.5.

Mã hóa chuỗi VBAMã hóa chuỗi VBA

Chuẩn Bị Môi Trường

Trước khi bắt đầu, hãy đảm bảo .NET Framework 3.5 đã được cài đặt trên máy tính của bạn. Đây là điều kiện tiên quyết để thực thi các hàm mã hóa.

Hàm Test: Thử Nghiệm Mã Hóa

Hàm Test dùng để kiểm tra các thuật toán mã hóa. Bạn có thể tùy chỉnh đầu vào và chọn thuật toán mong muốn.

Sub Test()
    Dim sIn As String, sOut As String, b64 As Boolean
    Dim sH As String, sSecret As String

    sIn = "" 'Nhập chuỗi cần mã hóa
    sSecret = "" 'Khóa bí mật cho StrToSHA512Salt

    b64 = True   'Đầu ra dạng Base-64
    'b64 = False   'Đầu ra dạng Hex

    'Chọn thuật toán
    'sH = MD5(sIn, b64)
    'sH = SHA1(sIn, b64)
    'sH = SHA256(sIn, b64)
    'sH = SHA384(sIn, b64)
    'sH = StrToSHA512Salt(sIn, sSecret, b64)
    sH = SHA512(sIn, b64)

    Debug.Print sH & vbNewLine & Len(sH) & " ký tự"
    MsgBox sH & vbNewLine & Len(sH) & " ký tự"
End Sub

Hàm Test VBAHàm Test VBA

Các Hàm Mã Hóa

Dưới đây là các hàm mã hóa cụ thể, được viết bằng VBA, sử dụng .NET Framework 3.5.

Xem thêm:  Nắm Vững Công Thức Mảng Excel: 7 Ví Dụ Thực Tế & Hướng Dẫn Chi Tiết

MD5

Public Function MD5(ByVal sIn As String, Optional bB64 As Boolean = 0) As String
    Dim oT As Object, oMD5 As Object
    Dim TextToHash() As Byte
    Dim bytes() As Byte

    Set oT = CreateObject("System.Text.UTF8Encoding")
    Set oMD5 = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")

    'Mã hóa
    TextToHash = oT.GetBytes_4(sIn)
    bytes = oMD5.ComputeHash_2((TextToHash))

    'Chuyển đổi kết quả
    If bB64 = True Then
       MD5 = ConvToBase64String(bytes)
    Else
       MD5 = ConvToHexString(bytes)
    End If
End Function

SHA1, SHA256, SHA384, SHA512

Các hàm SHA1, SHA256, SHA384 và SHA512 có cấu trúc tương tự MD5, chỉ khác ở đối tượng mã hóa được sử dụng. Ví dụ, với SHA256, ta sử dụng System.Security.Cryptography.SHA256Managed.

Các hàm mã hóa SHACác hàm mã hóa SHA

StrToSHA512Salt

Hàm StrToSHA512Salt cho phép mã hóa SHA512 với khóa bí mật, tăng cường tính bảo mật.

Function StrToSHA512Salt(sIn, sSecretKey, Optional b64 = False)
    Dim asc As Object, enc As Object
    Dim bytes() As Byte, SecretKey() As Byte

    Set asc = CreateObject("System.Text.UTF8Encoding")
    Set enc = CreateObject("System.Security.Cryptography.HMACSHA512")

    bytes = asc.Getbytes_4(sIn)
    SecretKey = asc.Getbytes_4(sSecretKey)
    enc.Key = SecretKey

    bytes = enc.ComputeHash_2((bytes))

    If b64 = True Then
       StrToSHA512Salt = ConvToBase64String(bytes)
    Else
       StrToSHA512Salt = ConvToHexString(bytes)
    End If
End Function

Hàm Chuyển Đổi

Các hàm ConvToBase64String và ConvToHexString dùng để chuyển đổi kết quả mã hóa sang dạng chuỗi Base64 hoặc Hex.

Private Function ConvToBase64String(vIn)
    Dim oD As Object
    Set oD = CreateObject("MSXML2.DOMDocument")
    With oD
        .LoadXML "<root></root>"
        .DocumentElement.DataType = "bin.base64"
        .DocumentElement.nodeTypedValue = vIn
    End With
    ConvToBase64String = Replace(oD.DocumentElement.Text, vbLf, "")
End Function

Private Function ConvToHexString(vIn)
    Dim oD As Object
    Set oD = CreateObject("MSXML2.DOMDocument")
    With oD
        .LoadXML "<root></root>"
        .DocumentElement.DataType = "bin.Hex"
        .DocumentElement.nodeTypedValue = vIn
    End With
    ConvToHexString = Replace(oD.DocumentElement.Text, vbLf, "")
End Function

Hàm chuyển đổiHàm chuyển đổi

Kết Luận

Bài viết đã trình bày cách mã hóa chuỗi trong VBA sử dụng các thuật toán phổ biến. Việc mã hóa giúp so sánh chuỗi nhanh chóng và hiệu quả, đồng thời tăng cường bảo mật cho ứng dụng của bạn. Hãy lựa chọn thuật toán phù hợp với nhu cầu và tích hợp vào dự án VBA của mình.

Đánh Giá Bài Viết
Tuyết Nhi

Tuyết Nhi

Tôi là Tuyết Nhi - Nữ phóng viên trẻ đến từ Hà Nội. Với niềm đam mê công nghệ, khoa học kỹ thuật, tôi yêu thích và muốn chia sẻ đến mọi người những trải nghiệm, kinh nghiệm về các lĩnh vực công nghệ, kỹ thuật... Rất mong được quý độc giả đón nhận ❤️.

Related Posts

Hàm ROUND trong Excel: Hướng dẫn làm tròn số chi tiết
Học Excel

Hàm ROUND trong Excel: Hướng dẫn làm tròn số chi tiết

Xóa Ký Tự Trong Chuỗi Văn Bản Excel: Hướng Dẫn Chi Tiết
Học Excel

Xóa Ký Tự Trong Chuỗi Văn Bản Excel: Hướng Dẫn Chi Tiết

Hướng Dẫn Tạo Biểu Đồ Kết Hợp Trong Excel
Học Excel

Hướng Dẫn Tạo Biểu Đồ Kết Hợp Trong Excel

Hướng Dẫn Lọc Trùng Trong Excel Đơn Giản Và Nhanh Chóng
Học Excel

Hướng Dẫn Lọc Trùng Trong Excel Đơn Giản Và Nhanh Chóng

Discussion about this post

Trending.

Tải Battle Legion MOD APK v4.3.7 (Menu, Vô Hạn Tiền, Bất Tử)

Tải Battle Legion MOD APK v4.3.7 (Menu, Vô Hạn Tiền, Bất Tử)

Hướng dẫn cài đặt Plants vs. Zombies 2 trên PC bằng BlueStacks

Hướng dẫn cài đặt Plants vs. Zombies 2 trên PC bằng BlueStacks

Chuyển Số Âm Thành Số Dương Trong Excel: Hướng Dẫn Chi Tiết

Chuyển Số Âm Thành Số Dương Trong Excel: Hướng Dẫn Chi Tiết

Cách Xóa Dấu Nháy Đơn (‘) Trong Excel

Cách Xóa Dấu Nháy Đơn (‘) Trong Excel

Chia đôi màn hình Excel: So sánh dữ liệu dễ dàng với Split

Chia đôi màn hình Excel: So sánh dữ liệu dễ dàng với Split

Giới Thiệu

Thủ Thuật

➤ Website đang trong quá trình thử nghiệm AI biên tập, mọi nội dung trên website chúng tôi không chịu trách nhiệm. Bạn hãy cân nhắc thêm khi tham khảo bài viết, xin cảm ơn!

Chuyên Mục

➤ TOP Thủ Thuật

➤ Chia Sẻ Kiến Thức

➤ Kênh Công Nghệ

➤ SEO

➤ Games

Liên Kết

➤

➤

➤

➤

➤

Liên Hệ

➤ TP. Hải Phòng, Việt Nam

➤ 0931. 910. JQK

➤ Email: [email protected]

Website này cũng cần quảng cáo, không có tiền thì viết bài làm sao  ” Đen Vâu – MTP ”

DMCA.com Protection Status

© 2025 Thủ Thuật - Website chia sẻ kiến thức công nghệ hàng đầu Việt Nam

No Result
View All Result
  • TOP Thủ Thuật
    • Thủ Thuật Internet
    • Thủ Thuật Máy Tính
    • Thủ Thuật Tiện Ích
    • Thủ Thuật Phần Mềm
  • Chia Sẻ Kiến Thức
    • Học Excel
    • Học Word
    • Học Power Point
  • Games
  • Kênh Công Nghệ
  • Facebook
  • WordPress
  • SEO

© 2025 Thủ Thuật - Website chia sẻ kiến thức công nghệ hàng đầu Việt Nam