Encrypt/Decrypt
- Home
- ASP
- Encrypt/Decrypt
Want to hide/unhide the ID (number) on your website? You don't want it visible to anyone, EVER? You don't want people to be able to find out what this number is even by viewing the HTML page source? By masking this number from prying eyes, you can effectively use the AutoNumber's ID field as the product download ID and/or filename.
Just think of the possibilities. If you have time sensitive material, or filenames that use the record ID as its name, you should be hiding that number from viewers so that you don't get malicious downloaders or badly bookmarked pages.
<%
Dim n, szEnc, t, HiN, LoN, i
n = CDbl((theNumber + 1570) ^ 2 - 7 * (theNumber + 1570) - 450)
If n < 0 Then szEnc = "R" Else szEnc = "J"
n = CStr(abs(n))
For i = 1 To Len(n) step 2
t = Mid(n, i, 2)
If Len(t) = 1 Then
szEnc = szEnc & t
Exit For
End If
HiN = (CInt(t) And 240) / 16
LoN = CInt(t) And 15
szEnc = szEnc & Chr(Asc("M") + HiN) & Chr(Asc("C") + LoN)
Next
Encrypt = szEnc
End Function
Function Decrypt(theNumber)
On Error Resume Next
Dim e, n, sign, t, HiN, LoN, NewN, i
e = theNumber
If Left(e, 1) = "R" Then sign = -1 Else sign = 1
e = Mid(e, 2)
NewN = ""
For i = 1 To Len(e) step 2
t = Mid(e, i, 2)
If Asc(t) >= Asc("0") And Asc(t) <= Asc("9") Then
NewN = NewN & t
Exit For
End If
HiN = Mid(t, 1, 1)
LoN = Mid(t, 2, 1)
HiN = (Asc(HiN) - Asc("M")) * 16
LoN = Asc(LoN) - Asc("C")
t = CStr(HiN Or LoN)
If Len(t) = 1 Then t = "0" & t
NewN = NewN & t
Next
e = CDbl(NewN) * sign
Decrypt = CLng((7 + sqr(49 - 4 * (-450 - e))) / 2 - 1570)
End Function
%>
Original number: 69
Encrypt(69) returns: JNMQMOJ8
Decrypt("JNMQMOJ8") returns: 69
Another example using variables instead:
Encrypt(Request.Form("ID"))
Encrypt(myVar)
Decrypt(Request.QueryString("id"))
Decrypt("JNMQMOJ8")
Decrypt(myVar)
asp encrypt decrypt privacy hide numbers