一套加解密字符串的函数

2016-01-29 20:19 12 1 收藏

一套加解密字符串的函数,一套加解密字符串的函数

【 tulaoshi.com - ASP 】

<%
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)

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

</body</html

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

来源:http://www.tulaoshi.com/n/20160129/1510992.html

延伸阅读
根据,MySQL 会自动将数字转化为字符串,反之亦然。 mysql SELECT 1+'1'; - 2 mysql SELECT CONCAT(2,' test'); - '2 test' 若想要将数字明确地转化为字符串,可使用 CAST()或 CONCAT()函数: mysql SELECT 38.8, CAST(38.8 AS CHAR); - 38.8, '38.8' mysql SELECT 38.8, CONCAT...
标签: ASP
1. 字符串函数: Len(str):取得字符串的长度 Instr(str1,str2):从字符串str1,寻找另一个字符串str2第一个出现的位置 Left(str,n):从字符串str左起取n个字符 Right(str,n):从字符串str右起取n个字符 Mid(str1,n1,n2):从字符串第n1个字符开始,取出n2个字符。 2.字符串函数应用: 1)通过字符函数设计出一个字符串长度控制函数: 防止超过行宽字符...
Private Sub Comman1_Click() Dim str1, str2, str3 As String str1 = "王宇虹" str2 = Encrypt(str1, 188, 24) MsgBox str2 str3 = Encrypt(str2, 188, 24) MsgBox str3 End Sub Private Function Encrypt(ByVal strSource As String, ByVal Key1 As Byte, _ ByVal Key2 As Integer) As String Dim bLowData As Byte Dim bHigData...
VB官方文档似乎很鼓励使用"无$"类字符串函数,比如:Left、LTrim或者UCase,而不是实现同样功能的Left$、LTrim$和UCase$函数。但是我们必须认识到:前者返回variant类型的数值,当用于字符串表达式中时,最终必须要转换为字符串(string)类型。 因此,在严格要求时间的代码段中,我们应该使用后者,它们将快5-10。 ->
对于针对字符串位置的操作,第一个位置被标记为1。 ASCII(str) 返回字符串 str 的 最左面字符的ASCII代码值。 如果 str 是空字符串, 返回 0 。如果 str 是 NULL ,返回 NULL 。 mysql select ASCII('2'); - 50 mysql select ASCII(2); - 50 mysql select ASCII('dx'); - 100 也可参见ORD()函数。 ORD(str) 如果字符串str最左面字...

经验教程

30

收藏

89
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部