﻿DES标准加密、解密算法For ASP

-----------------------------------------
功能：用vbscript实现DES标准加密算法
 
模式：ECB/CBC   默认：ECB
 
填充：PKCS5/NONE/ZERO 默认：PKCS5
 
编码：GK2312/UTF-8

调用示例：(cbc/pkcs5/gb2312)

<%

Dim str
str = "我还是爱你的"
Dim des
Set des = new DesClass

With des
	.Key = "12345678"
	.IV = "12345678" 'cbc mode only
	.Mode = "cbc"
	.Padding = "pkcs5"
	.Encoding = "gb2312"
	Response.Write .Encode(str) & "<br>"
	Response.Write .Decode(.Encode(str))
End With

%>

AES标准加密、解密算法For ASP
---------------------------------------
功能：用vbscript实现AES标准加密算法
 
模式：ECB/CBC   默认：ECB
 
填充：PKCS5/NONE/ZERO 默认：PKCS5
 
编码：GK2312/UTF-8
 
调用示例：(cbc/pkcs5//gb2312)

<%

Dim str
str = "我还是爱你的"
Dim aes
Set aes = new AesClass

With aes
	.Key = "1234567812345678"
	.IV = "1234567812345678" 'cbc mode only
	.Mode = "cbc"
	.Padding = "pkcs5"
	.Encoding = "gb2312"
	Response.Write .Encode(str) & "<br>"
	Response.Write .Decode(.Encode(str))
End With

%>
 

PS：

在绝大多数的ASP应用中，很少涉及到这两个算法。很可惜，我在先后经历的两家公司的产品（项目）中，都碰上了。

第一个是天津联通短信网关的一个简单集成，要用到3DES;

第二个是公司产品和杭州小灵通项目上的合作，也是接口部分用到了AES;

因为两个项目和产品本身都是ASP的，但当时几经周折都没有办法实现。
网上倒是找到了几个，但都不是标准的算法，加密以后对方解不开。
后来不得不妥协采用一个变通的方法，就是DES和AES部分用.net来做，再用xmlhttp去取结果。

这样做的结果以后会带来很多麻烦，比如曾多次遇到，客户一在新机器上部署，但忘了安装.net framework,导致接口出错。

后来，一个偶然的机会，在一国外网站上发现了这两个算法的JS版，一经对比测试，发现竟然是标准的算法，但是没有设置
“填充模式”的功能。于是，花一些时间，改成了VBS版，并完善了填充模式，以便于实际应用的需要。

上家公司是做视频会议的，除了公网有运营平台外，公司也会把系统打包卖给有需要的客户，在离职前，把那个.net版的AES换成了vbs版，
避免了不必要的麻烦，也算是自己最后给公司做一顶点儿贡献吧。


最后补充一点，UTF-8模式下，除了encoding，还需要把ASP类文件也保存为UTF-8。

如果在使用中有什么问题，可以随时交流：

lwlwei@126.com
qq: 114003201