PDA

View Full Version : [Q] Mã hoá dữ liệu trong ASP



haji
01-11-2002, 16:01
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
01-11-2002, 17:24
Dùng thử 2 hàm này xem sao:

Const sBASE_64_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwx yz0123456789+/"

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
01-11-2002, 17:29
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
01-11-2002, 21:40
thế dữ liệu đã mã hoá có thể giải mã ngược lại được không nhỉ ?

haji
01-11-2002, 21:47
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
02-11-2002, 01:26
Đoạn code hay và trúng ý mình quá...
Mình sẽ test thử và mail cảm ơn nhé

White_Rose
02-11-2002, 04:19
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
02-11-2002, 20:41
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
02-11-2002, 20:50
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
02-11-2002, 23:18
xong rồi , cám ơn W_R nhé .

Quá hay .

haji
02-11-2002, 23:22
Mình cũng vô tình được biết là snitz forum ver 3.4.03 cũng dùng thuật toán MD5 để mã hoá dữ liệu . Bạn nào quan tâm có thể tham khảo trong file register.asp và inc_sha256.asp (nguồn của thuật toán MD5) của snitz

TonyViet9x
30-09-2008, 21:00
[Q] Mã hoá dữ liệu trong ASP (http://freecode4u.com/forums/asp/)
Thanks :D