地址栏加密解密函数
来源:互联网 发布:将数组赋值给指针 编辑:程序博客网 时间:2024/05/02 02:37
<%
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="2"
cba="AS"
%>
- 地址栏加密解密函数
- 给URL地址栏中的参数加密/解密
- js中的 地址栏的加密和解密
- js加密地址栏参数并且获解密的地址栏参数
- AES 地址栏重要信息加密(JS 加密 Java 解密)
- base64 加密解密函数
- 一段加密解密函数
- 字符串加密解密函数
- DES加密解密函数
- delphi 加密解密函数
- C#加密解密函数
- 字符串加密解密函数
- 加密解密函数
- PHP 加密解密函数
- mysql加密解密函数
- mysql加密解密函数
- oracle加密解密函数
- PHP加密解密函数
- 人面,桃花
- MYSQL++ 数据库连接超时的解决办法
- 找不到iis
- 软件设计师要考哪几门课程????
- 关于SQLDMO的使用
- 地址栏加密解密函数
- 命令行下修改IP地址
- WCF的优势和性能测试
- ISS
- 为什么2008会出现很多TMP文件
- 自绘按钮的实现
- 探索C++的秘密之详解extern "C"
- 关于缩减库
- 如何解决对象不支持此属性或方法