10/10/2018, 00:21
[Q] Mã hoá dữ liệu trong ASP
gia su co Form nhap lieu sau
user : haji
pass : haji
Lam sao de khi insert vao database se la
user : haji
pass : abcd1234
Neu ban co code , xin cho code
Neu ban co y tuong , xin cho y tuong
user : haji
pass : haji
Lam sao de khi insert vao database se la
user : haji
pass : abcd1234
Neu ban co code , xin cho code
Neu ban co y tuong , xin cho y tuong
Bài liên quan
Const sBASE_64_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz0123456789+/"
function Base64decode(ByVal asContents)
Dim lsResult
Dim lnPosition
Dim lsGroup64, lsGroupBinary
Dim Char1, Char2, Char3, Char4
Dim Byte1, Byte2, Byte3
if Len(asContents) Mod 4 > 0 Then asContents = asContents & String(4 - (Len(asContents) Mod 4), " ")
lsResult = ""
For lnPosition = 1 To Len(asContents) Step 4
lsGroupBinary = ""
lsGroup64 = Mid(asContents, lnPosition, 4)
Char1 = INSTR(sBASE_64_CHARACTERS, Mid(lsGroup64, 1, 1)) - 1
Char2 = INSTR(sBASE_64_CHARACTERS, Mid(lsGroup64, 2, 1)) - 1
Char3 = INSTR(sBASE_64_CHARACTERS, Mid(lsGroup64, 3, 1)) - 1
Char4 = INSTR(sBASE_64_CHARACTERS, Mid(lsGroup64, 4, 1)) - 1
Byte1 = Chr(((Char2 And 48) \ 16) Or (Char1 * 4) And &HFF)
Byte2 = lsGroupBinary & Chr(((Char3 And 60) \ 4) Or (Char2 * 16) And &HFF)
Byte3 = Chr((((Char3 And 3) * 64) And &HFF) Or (Char4 And 63))
lsGroupBinary = Byte1 & Byte2 & Byte3
lsResult = lsResult + lsGroupBinary
Next
Base64decode = lsResult
End function
' --------------------------------------
' ---------------------------------------
function Base64encode(ByVal asContents)
Dim lnPosition
Dim lsResult
Dim Char1
Dim Char2
Dim Char3
Dim Char4
Dim Byte1
Dim Byte2
Dim Byte3
Dim SaveBits1
Dim SaveBits2
Dim lsGroupBinary
Dim lsGroup64
if Len(asContents) Mod 3 > 0 Then asContents = asContents & String(3 - (Len(asContents) Mod 3), " ")
lsResult = ""
For lnPosition = 1 To Len(asContents) Step 3
lsGroup64 = ""
lsGroupBinary = Mid(asContents, lnPosition, 3)
Byte1 = Asc(Mid(lsGroupBinary, 1, 1)): SaveBits1 = Byte1 And 3
Byte2 = Asc(Mid(lsGroupBinary, 2, 1)): SaveBits2 = Byte2 And 15
Byte3 = Asc(Mid(lsGroupBinary, 3, 1))
Char1 = Mid(sBASE_64_CHARACTERS, ((Byte1 And 252) \ 4) + 1, 1)
Char2 = Mid(sBASE_64_CHARACTERS, (((Byte2 And 240) \ 16) Or (SaveBits1 * 16) And &HFF) + 1, 1)
Char3 = Mid(sBASE_64_CHARACTERS, (((Byte3 And 192) \ 64) Or (SaveBits2 * 4) And &HFF) + 1, 1)
Char4 = Mid(sBASE_64_CHARACTERS, (Byte3 And 63) + 1, 1)
lsGroup64 = Char1 & Char2 & Char3 & Char4
lsResult = lsResult + lsGroup64
Next
Base64encode = lsResult
End function
Enscription:
1. Từng char - chuyển sang --> ASCII intergẻ
2. ASCII int - dùng hàm linear nào đó (f(x) =a*x+b) --> code int
3. Code int - convert ---> coded char
Description:
1. Coded char -- convert ---> coded int
2. Coded int -> dùng invert của hàm f(x) ===> ASCII int
3. ASCII int --- convert ----> message char
Cám ơn vuminhphan nhé , tui sẽ test đoạn code của u
Mình sẽ test thử và mail cảm ơn nhé
thế dữ liệu đã mã hoá có thể giải mã ngược lại được không nhỉ ?
Nếu bạn chỉ muốn bảo vệ password khỏi sự nhòm ngó của hacker thì nên sử dụng thuật toán 1 chiều MD5 (không có khả năng giải mã sau khi đã mã hoá).
Mã nguồn bạn có thể view ở đây, khá dài đó.
http://www.aspvn.net/vbasp/vbasp.asp?id=347
ngoài ra, bạn có thể dùng các thuật toán linear enscription thử:
Enscription:
1. Từng char - chuyển sang --> ASCII intergẻ
2. ASCII int - dùng hàm linear nào đó (f(x) =a*x+b) --> code int
3. Code int - convert ---> coded char
Description:
1. Coded char -- convert ---> coded int
2. Coded int -> dùng invert của hàm f(x) ===> ASCII int
3. ASCII int --- convert ----> message char
mình ko rành về các thuật toán mã hoá , nếu có thể nói sơ sơ 1 chút được ko ???
Cái đó còn tuỳ vào thuật toán. Chẳng hạn như thuật toán Base64 ở trên thì giải mã tốt vì nó chỉ dùng để chuyển dữ liệu mà thôi (gửi thư) chứ không phải là một thuật toán mã hoá có độ bảo mật.
Nếu bạn chỉ muốn bảo vệ password khỏi sự nhòm ngó của hacker thì nên sử dụng thuật toán 1 chiều MD5 (không có khả năng giải mã sau khi đã mã hoá).
Mã nguồn bạn có thể view ở đây, khá dài đó.
http://www.aspvn.net/vbasp/vbasp.asp?id=347
Quá hay .