当前位置: 首页 > 图文教程 > 网络编程 > ASP > 一套加解密字符串的函数

ASP
迁移到 ASP .NET:需考虑的重要问题(2)
ASP中优化数据库处理
结合XML, ADO, 以及ASP
在ASP中优化数据库处理
提高ASP性能的最佳选择(一)
返回UPDATE SQL语句所影响的行数的方法
ASP如何使用MYSQL数据库
安全维护 IIS asp 站点的高级技巧
也谈ASP中的RESPONSE属性
ASP提速技巧
在ASP中如何访问Novell下的数据库
改善ASP性能和外观的技巧集锦(上)
改善ASP性能和外观的技巧集锦(中)
改善ASP性能和外观的技巧集锦(下)
利用ASP在浏览器上打印输出
用ASP文件实现CPU的使用率始终保持100%
ASP 0115 Error的解决方案
Varchar与char的区别
探讨一下rs(0)和rs(fieldname)的执行效率
连接WEB数据库的ADO性能提高技巧

ASP 中的 一套加解密字符串的函数


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 205 ::
收藏到网摘: n/a

<%
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
%>
<html><body>
Original number: 69 <br>
Encrypt(69) returns: JNMQMOJ8 <br>
Decrypt("JNMQMOJ8") returns: 69
<p>
Another example using variables instead: <br>
Encrypt(Request.Form("ID")) <br>
Encrypt(myVar) <br>
Decrypt(Request.QueryString("id")) <br>
Decrypt("JNMQMOJ8") <br>
Decrypt(myVar)

</body></html>