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
vuminhphan viết 02:23 ngày 10/10/2018
Dùng thử 2 hàm này xem sao:

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
vuminhphan viết 02:37 ngày 10/10/2018
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
haji viết 02:30 ngày 10/10/2018
thế dữ liệu đã mã hoá có thể giải mã ngược lại được không nhỉ ?
haji viết 02:23 ngày 10/10/2018
Nếu hacker biết được cách mã hoá của mình mà viết chương trình giải mã thì cũng nguy

Cám ơn vuminhphan nhé , tui sẽ test đoạn code của u
newcinc viết 02:32 ngày 10/10/2018
Đoạn code hay và trúng ý mình quá...
Mình sẽ test thử và mail cảm ơn nhé
White_Rose viết 02:35 ngày 10/10/2018
Bài viết được gửi bởi haji
thế dữ liệu đã mã hoá có thể giải mã ngược lại được không nhỉ ?
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
haji viết 02:23 ngày 10/10/2018
Enscrypt từ format dạng này --> dạng khác mình cũng nghĩ tới không an tâm lắm vì hacker có thể tự register cho mình để tìm thuật toán mã hoá . cái mình cần là thuật toán mã hoá 1 chiều ...



Bài viết được gửi bởi vuminhphan
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
haji viết 02:27 ngày 10/10/2018
hic , dài thiệt ..
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 ???

Bài viết được gửi bởi White_Rose
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
Nếu không có hacker và girl thì cuộc đời có gì phải lo ?
haji viết 02:30 ngày 10/10/2018
xong rồi , cám ơn W_R nhé .

Quá hay .
Bài liên quan
0