Hàm Mã hóa đơn giản!

Liên hệ QC

Mr Okebab

Ngon Ngất Ngây
Thành viên đã mất
Tham gia
6/8/06
Bài viết
3,260
Được thích
3,787
Nhân lúc nấu cơm rửa bát và bế con, làm cái hàm mã hóa chơi.
Nếu các bác có những hàm tương tự thì Post lên cho mọi người tham khảo

PHP:
Function MaHoa(Chuoi As String) As String
    Application.Volatile (False)
    Dim i As Long, iL As Long
    iL = Len(Chuoi)
    If iL = 0 Then Exit Function
    For i = iL To 1 Step -1
        MaHoa = MaHoa & ChrW(10000 - AscW(Mid$(Chuoi, i, 1)))
    Next
End Function

PHP:
Function UnMaHoa(Chuoi As String) As String
    Application.Volatile (False)
    Dim i As Long, iL As Long
    iL = Len(Chuoi)
    If iL = 0 Then Exit Function
    For i = iL To 1 Step -1
        UnMaHoa = UnMaHoa & ChrW(10000 - AscW(Mid$(Chuoi, i, 1)))
    Next
End Function

Chỉ là hàm đơn giản nên mong mọi người đừng cười.

Thân!
 

File đính kèm

Tham gia thêm với Mr.OkeBab 1 Function
PHP:
Function MaHoa(PW As String, n As Integer) As String
    Dim charnum As Long
    Dim PW_ As String
    Dim lentd As Long
    lentd = Len(PW)
    For i = 1 To lentd
        charnum = (Asc(Mid$(PW, i, 1)) + n) Mod (256)
        PW_ = PW_ + Chr$(charnum)
    Next
    MaHoa = PW_
End Function
Nếu n là số dương thì mã hoá
Nếu n là số âm thì giải mã

TDN
 

File đính kèm

Upvote 0
Cũng bon chen cái, tuy còn dài dòng!

PHP:
Option Explicit
 Const Chu As String = "~`w@#$%^&*()_+|-=\:;'<>?,z/JjfFW"
 Const MaChu As String = "bcdghklmnpqrstvxBCDGHKLMNPQSRTVX"

Function MaHoa(StrC As String, Optional GiaiMa As Boolean = False) As String
 Dim Jf As Byte, Ww As Byte
 Dim Str1 As String, Str0 As String
 On Error Resume Next
 Str1 = MaChu:           Str0 = Chu
 If GiaiMa Then
    Str1 = Chu:             Str0 = MaChu
 End If
 For Jf = 2 To Len(StrC)
    Ww = InStr(Str1, Mid(StrC, Jf, 1))
    If Ww > 0 Then _
        StrC = Left(StrC, Jf - 1) & Mid(Str0, Ww, 1) & Mid(StrC, Jf + 1)
 Next Jf
 MaHoa = StrC
End Function
 
Upvote 0
Anh ơi! Em mít đặc quá
Chẳng hiểu hàm mã hoá này công dụng như nào?
-----
Đôi dòng giải thích giúp em công dụng với

Thanks
 
Upvote 0
“Viết mật thư” với Microsoft Word

Một ví dụ bổ sung cho eBook ADO toàn tập
Trích của bác Levanduyet:
Mã:
Option Explicit
Option Private Module
'It is the defaut CodeKey to Decrypt or Encrypt
Private Const csKeyCode As String = "Le Thanh Nhan"
'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   : Giai ma du lieu / Decrypt data
'             CodeKey: chuoi ky tu dung de giai ma
'                      key string to decrypt
'             DataIn: chuoi ky tu can giai ma
'                      data will be decrypted
' Example   : x = Decrypt("24044E3E412048251B2D0D15", "Thanh Nhan")
'             Ket qua ta duoc chuoi da giai ma sau
'             x = Le Van Duyet
'---------------------------------------------------------------------------------------
'
Function [B]Decrypt[/B](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   : Ma hoa du lieu / Encrypt data
'             CodeKey: chuoi ky tu dung de ma hoa
'                      key string to encrypt
'             DataIn: chuoi ky tu can ma hoa
'                      data will be encrypted
' Example   : x = Encrypt("Le Van Duyet", "Thanh Nhan")
'             Ket qua ta duoc chuoi ma hoa sau:
'             x = 24044E3E412048251B2D0D15
 
'---------------------------------------------------------------------------------------
'
Function [B]Encrypt[/B](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 [B]test1[/B]()
    Dim sTest As String
 
    sTest = "Le Van Duyet"
    'Bat dau ma hoa
    sTest = Encrypt(sTest)
    'Thong bao chuoi ma hoa
    Debug.Print sTest
    MsgBox "The encrypt string is " & sTest, vbOKOnly + vbInformation, mcsAppName
    'Bat dau giai ma
    sTest = Decrypt(sTest)
    'Thong bao chuoi sau khi giai ma
    Debug.Print sTest
    MsgBox "The string after decrypt is " & sTest, vbOKOnly + vbInformation, mcsAppName
 
End Sub
Thân.
 
Upvote 0
Anh ơi! Em mít đặc quá
Chẳng hiểu hàm mã hoá này công dụng như nào?
-----
Đôi dòng giải thích giúp em công dụng với

Thanks

Ý của mình là như thế này.

Mỗi một ký tự có một Code riêng từ 0->10.000

Vậy thì cứ gặp ký tự nào thì sẽ lấy ký tự tương ứng của nó so với 10.000

VD : Ký tự số 1 tương ứng với ký tự số 9.999
2->9.998
3->9997

Sau đó đảo ngược toàn bộ chuỗi lại


Còn hàm giải mã cũng làm tương tự. (Tức là ngược lại)

Thân!
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom