url地址栏加密和解密函数 Base64

来源:无忧脚本 时间:2008-07-10 13:29:00 

加密解密字符串的asp函数,如用于ASP链接地址栏参数的加密,看代码就明白。

比如:

show.asp?id=DB26538FA54C70E1E31608CA769087A407E92CF1

Base64解密函数 base64Decode(scrambled)

Base64加密函数 base64Encode(plain)

使用方法:

加密ID:

<a href="show.asp?id=<%=base64Encode(rs("id"))%>" ><%=rs("name")%></a>

解密ID:

id=base64Decode(request("id"))

函数代码:


<%
const BASE_64_MAP_INIT = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
dim newline
dim Base64EncMap(63)
dim Base64DecMap(127)
'初始化函数
PUBLIC SUB initCodecs()
' 初始化变量
newline = "<P>" & chr(13) & chr(10)
dim max, idx
max = len(BASE_64_MAP_INIT)
for idx = 0 to max - 1
Base64EncMap(idx) = mid(BASE_64_MAP_INIT, idx + 1, 1)
next
for idx = 0 to max - 1
Base64DecMap(ASC(Base64EncMap(idx))) = idx
next
END SUB

'Base64加密函数
PUBLIC FUNCTION base64Encode(plain)
if len(plain) = 0 then
base64Encode = ""
exit function
end if
dim ret, ndx, by3, first, second, third
by3 = (len(plain) \ 3) * 3
ndx = 1
do while ndx <= by3
first = asc(mid(plain, ndx+0, 1))
second = asc(mid(plain, ndx+1, 1))
third = asc(mid(plain, ndx+2, 1))
ret = ret & Base64EncMap( (first \ 4) AND 63 )
ret = ret & Base64EncMap( ((first * 16) AND 48) + ((second \ 16) AND 15 ) )
ret = ret & Base64EncMap( ((second * 4) AND 60) + ((third \ 64) AND 3 ) )
ret = ret & Base64EncMap( third AND 63)
ndx = ndx + 3
loop
if by3 < len(plain) then
first = asc(mid(plain, ndx+0, 1))
ret = ret & Base64EncMap( (first \ 4) AND 63 )
if (len(plain) MOD 3 ) = 2 then
second = asc(mid(plain, ndx+1, 1))
ret = ret & Base64EncMap( ((first * 16) AND 48) + ((second \ 16) AND 15 ) )
ret = ret & Base64EncMap( ((second * 4) AND 60) )
else
ret = ret & Base64EncMap( (first * 16) AND 48)
ret = ret '& "="
end if
ret = ret '& "="
end if
base64Encode = ret
END FUNCTION

'Base64解密函数
PUBLIC FUNCTION base64Decode(scrambled)
if len(scrambled) = 0 then
base64Decode = ""
exit function
end if
dim realLen
realLen = len(scrambled)
do while mid(scrambled, realLen, 1) = "="
realLen = realLen - 1
loop
dim ret, ndx, by4, first, second, third, fourth
ret = ""
by4 = (realLen \ 4) * 4
ndx = 1
do while ndx <= by4
first = Base64DecMap(asc(mid(scrambled, ndx+0, 1)))
second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))
third = Base64DecMap(asc(mid(scrambled, ndx+2, 1)))
fourth = Base64DecMap(asc(mid(scrambled, ndx+3, 1)))
ret = ret & chr( ((first * 4) AND 255) + ((second \ 16) AND 3))
ret = ret & chr( ((second * 16) AND 255) + ((third \ 4) AND 15))
ret = ret & chr( ((third * 64) AND 255) + (fourth AND 63))
ndx = ndx + 4
loop
if ndx < realLen then
first = Base64DecMap(asc(mid(scrambled, ndx+0, 1)))
second = Base64DecMap(asc(mid(scrambled, ndx+1, 1)))
ret = ret & chr( ((first * 4) AND 255) + ((second \ 16) AND 3))
if realLen MOD 4 = 3 then
third = Base64DecMap(asc(mid(scrambled,ndx+2,1)))
ret = ret & chr( ((second * 16) AND 255) + ((third \ 4) AND 15))
end if
end if
base64Decode=ret
END FUNCTION
call initCodecs
'abc="aspxhome.com"
'response.write(base64Encode(abc))'加密字符串abc
'解密加密的字符串
'response.Write(base64Decode(base64Encode(abc)))
%>

 

标签:加密,解密,url,Base64
0
投稿

猜你喜欢

  • Asp+Sql 对数据库的各种操作

    2007-09-22 10:38:00
  • sql server 带列名导出至excel

    2008-11-25 11:07:00
  • IE8 的 JSON 解析 Bug

    2009-05-22 12:36:00
  • Stored Procedure(存储过程)编写经验和优化措施

    2008-03-12 12:03:00
  • phpMyAdmin 2.10.2 配置方法

    2007-08-22 08:11:00
  • 完美的js验证网址url(正则表达式)

    2008-06-07 09:36:00
  • ASP自动解压RAR文件代码

    2007-11-06 13:29:00
  • 谈谈图片如何影响转换率

    2011-08-10 19:14:08
  • css中如何使div居中(垂直水平居中)

    2007-08-13 08:17:00
  • ASPImage组件的实现过程[图]

    2008-02-03 15:37:00
  • 让SQL Server数据库自动执行管理任务(一)

    2009-03-20 10:35:00
  • 关于document.createDocumentFragment()

    2009-04-05 16:04:00
  • asp如何处理页面执行时发生的错误?

    2009-11-14 20:43:00
  • div水平垂直居中方法(淘宝招聘css题目)

    2007-10-25 12:48:00
  • ASP基础知识介绍

    2009-02-11 13:44:00
  • 详细讲解如何删除Access数据库中的空记录

    2008-11-28 14:58:00
  • 客齐集社区头像显示效果代码

    2008-04-03 13:15:00
  • 关于获取HTML元素的CSS属性值函数

    2008-09-01 13:20:00
  • IE不支持overrideMimeType()方法,即使是IE7.

    2009-02-08 16:58:00
  • sql server如何得到插入一条记录后最新的ID?

    2009-11-15 20:06:00
  • asp之家 网络编程 m.aspxhome.com