一聚教程网:一个值得你收藏的教程网站

热门教程

再来一套加解密字符串的function

时间:2022-06-30 11:24:29 编辑:袖梨 来源:一聚教程网

<%
Function Encrypt(theNumber)
On Error Resume Next
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)


热门栏目