Tìm thủ thuật nhanh hơn với chức năng tìm trong Blog

1/10/11

Mã hóa và giải mã- tgiả vba

Tác giả: VBA
site: Diễn đàn Thủ Thuật Access
ứng dụng 2 hàm này các bác có thể sử dụng trong việc quản lý mã hoá mật khẩu trong table User của các bác là hay nhất


Public Function Mahoa(Data As String, Optional Depth As Integer) As String
Dim TempChar As String
Dim TempAsc As Integer
Dim NewData As String
Dim vChar As Integer
For vChar = 1 To Len(Data)
TempChar = Mid$(Data, vChar, 1)
TempAsc = Asc(TempChar)
If Depth = 0 Then Depth = 40
If Depth > 254 Then Depth = 254

TempAsc = TempAsc + Depth
If TempAsc > 255 Then TempAsc = TempAsc - 255
TempChar = Chr(TempAsc)
NewData = NewData & TempChar
Next vChar
Mahoa = NewData

Giải thích các đối số:
Data: Chuối ký tự cần mã hoá
Depth: Tuỳ chọn độ dài mã hoá là các số nguyên

VD1: Mahoa("vba",8)=> kết quả là ~ji
nhưng mahoa("vba",9) => kết quả lại là kj
Các bác tự nghiên cứu tiếp nhé.
------------------------------

em xin gửi các bác tham khảo code giaima

Public Function GiaiMa(Data As String, Optional Depth As Integer) As String
Dim TempChar As String
Dim TempAsc As Integer
Dim NewData As String
Dim vChar As Integer

For vChar = 1 To Len(Data)
TempChar = Mid$(Data, vChar, 1)
TempAsc = Asc(TempChar)
If Depth = 0 Then Depth = 40
If Depth > 254 Then Depth = 254
TempAsc = TempAsc - Depth
If TempAsc < 0 Then TempAsc = TempAsc + 255 TempChar = Chr(TempAsc) NewData = NewData & TempChar Next vChar GiaiMa = NewData End Function





Chú ý: VD các bác mã hoá dùng hàm mahoa("vba",9)=~ji
Do đó khi giải mã, các bác phải dùng hàm: giaima("~ji",9) => kết quả là vba
Nếu các bác dùng giaima("~ji",6) thì lại ra 1 kết quả khác đấy

Để thảo luận thêm về chủ đề này, mời vào: http://thuthuataccess.com/forum/thread-1258.html