- Tham gia
- 30/5/06
- Bài viết
- 1,798
- Được thích
- 4,706
- Giới tính
- Nam
Mã:
Option Explicit
Option Private Module
'Đây là mã khoá mặc định để Mã hoá hoặc giải mả (Decrypt or Encrypt)
Private Const csKeyCode As String = "Le Hoang"
'XOR encryption
'http://www.codetoad.com/visual_basic_better_xor.asp
'---------------------------------------------------------------------------------------
' Procedure : Decrypt
' DateTime : 13/07/2008 12:40
' Author : http://www.codetoad.com/visual_basic_better_xor.asp
' Purpose/Mục đích : Giải mã dữ liệu / Decrypt data
' CodeKey: chuổi ký tự dùng để giả mã
' DataIn: chuổi ký tự cần giải mã
'
' Ví dụ : x = Decrypt("24044E3E412048251B2D0D15", "Thanh Nhan")
' Kết quả ta được chuổi đã giải mã sau
' x = Le Van Duyet
'---------------------------------------------------------------------------------------
'
Function Decrypt DataIn As String, Optional KeyCode As String = vbNullString) As String
Dim lonDataPtr As Long
Dim strDataOut As String
Dim intXOrValue1 As Integer
Dim intXOrValue2 As Integer
If Len(KeyCode) = 0 Then
KeyCode = csKeyCode
End If
For lonDataPtr = 1 To (Len(DataIn) / 2)
'The first value to be XOr-ed comes from the data to be encrypted
intXOrValue1 = Val("&H" & (Mid$(DataIn, (2 * lonDataPtr) - 1, 2)))
'The second value comes from the code key
intXOrValue2 = Asc(Mid$(KeyCode, ((lonDataPtr Mod Len(KeyCode)) + 1), 1))
strDataOut = strDataOut + Chr(intXOrValue1 Xor intXOrValue2)
Next lonDataPtr
Decrypt = strDataOut
End Function
'---------------------------------------------------------------------------------------
' Procedure : Encrypt
' DateTime : 13/07/2008 12:38
' Author : http://www.codetoad.com/visual_basic_better_xor.asp
' Purpose : Mã hoá dữ liệu / Encrypt data
' CodeKey: chuổi ký tự dùng để mã hoá
' DataIn: chuổi ký tự cần mã hoá
'
' Ví dụ : x = Encrypt("Le Van Duyet", "Thanh Nhan")
' Kết quả ta được chuổi đã mã hoá sau:
' x = 24044E3E412048251B2D0D15
'---------------------------------------------------------------------------------------
'
Function Encrypt DataIn As String, Optional KeyCode As String = vbNullString) As String
Dim lonDataPtr As Long
Dim strDataOut As String
Dim Temp As Integer
Dim tempstring As String
Dim intXOrValue1 As Integer
Dim intXOrValue2 As Integer
If Len(KeyCode) = 0 Then
KeyCode = csKeyCode
End If
For lonDataPtr = 1 To Len(DataIn)
'The first value to be XOr-ed comes from the data to be encrypted
intXOrValue1 = Asc(Mid$(DataIn, lonDataPtr, 1))
'The second value comes from the code key
intXOrValue2 = Asc(Mid$(KeyCode, ((lonDataPtr Mod Len(KeyCode)) + 1), 1))
Temp = (intXOrValue1 Xor intXOrValue2)
tempstring = Hex(Temp)
If Len(tempstring) = 1 Then tempstring = "0" & tempstring
strDataOut = strDataOut + tempstring
Next lonDataPtr
Encrypt = strDataOut
End Function
Mã:
Private Sub test1()
Dim sTest As String
sTest = "Le Van Duyet"
'Bắt đầu mã hoá
sTest = Encrypt(sTest)
'Thông báo chuổi đã mã hoá
MsgBox "The encrypt string is " & sTest, vbOKOnly + vbInformation, "Thông báo"
'Bắt đầu giải mã
sTest = Decrypt(sTest)
'Thông báo chuổi sau khi giải mã
MsgBox "The string after decrypt is " & sTest, vbOKOnly + vbInformation, "Thông báo"
End Sub
Xin các bạn chú ý cho:
1. Option Private Module
2. Private Const
Các bạn có tự hỏi, làm sao lại có Private không?
Chúng ta sẽ đi tìm hiểu tiếp nha.
Lần chỉnh sửa cuối: