base4的加密算法中的一个问题

fenger2008 2007-04-12 04:51:22
我在阅读base4的加密算法中遇到了下面这个问题,请高手赐教
请高手告诉我:数组名(逻辑表达式),这是什么意思?
例子:下面的Base64EncMap(0 and 1)这是什么意思?
<%
BASE64= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
dim Base64EncMap(63)
dim max, idx
max = len(BASE64)
for idx = 0 to max - 1
Base64EncMap(idx) = mid(BASE64, idx + 1, 1)
next
........
response.write Base64EncMap(0 and 1)&"," '这几个输出是我自己为了搞清代码response.write Base64EncMap(1 and 2)&"," '到底要干什么,而自己写上去的.
response.write Base64EncMap(2 and 3)&"," '实际上后面的参数是变量逻辑表达
response.write Base64EncMap(3 and 4)&"," '式
response.write Base64EncMap(4 and 5)&","
response.write Base64EncMap(5 and 6)&","
%>
...全文
407 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hookee 2007-05-01
  • 打赏
  • 举报
回复
BASE64是编码算法,并非加密算法,AND的作用是进行位运算.

一个字节是8位,以前作为email的有效字符集ascii是7位的,最高位会被设为0,为了传非ascii字符就要编码,但ascii表里并非所有字符都是可显示的,就选取了64个可见字符,用6位(2^6=64)表示其在映射表格中的位置。

编码方法是以24位为一组,3 X 8 = 24位,然后将这24位拆开成4组,刚好 4 X 6 = 24 ,其中的6就是上面的6位,用这6位可以表示64个字符。最后在6位之前加"00",变成一个字节,结果就是将3个字节的数据转换成4个字节。

如果要转换的数据不是3个字节的倍数,则根据余数加1个或2个"="。

猜测代码中的AND的作用就是拆位,移位, 计算map的位置,
比如8位用16进制表示的话, AND 48是取6位的前2位,AND 60是取6位的前4位, AND 63取全部6位
cloudgamer 2007-04-14
  • 打赏
  • 举报
回复
帮顶

4,008

社区成员

发帖
与我相关
我的任务
社区描述
它是一种微软环境下的轻量级的解释型语言,它使用COM组件、WMI、WSH、ADSI访问系统中的元素,对系统进行管理。
社区管理员
  • vbScript社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧