繁体中文
设为首页
加入收藏
当前位置:ASP技术首页 >> 安全加密 >> 一套相当实用的加解密字符串的函数。

一套相当实用的加解密字符串的函数。

2004-10-01 08:26:10  作者:  来源:互联网  浏览次数:56  文字大小:【】【】【
简介:<% 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...
关键字:字符串 函数 实用

<%

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)

责任编辑:admin
相关文章