1、在.net下新建一个类库,再添加一个类文件
2、定义一个接口,并给接口添加一个GUID
[Guid("47E62378-B300-43f6-BDB4-0DEAC60F8EB6")] public interface IEncrypt { string MyEncoding(string ss); string MyDecoding(string ss); }
3.实现接口
[Guid("532FF790-079A-4e2b-AB1E-6DFC7E1DFD21")] public class MyEnCrypt : IEncrypt { public MyEnCrypt() {} //加密方法 public string MyEncoding(string ss) { SymmetricAlgorithm symm = new RijndaelManaged(); symm.GenerateKey(); symm.GenerateIV(); byte[] key=symm.Key; byte[] iv=symm.IV; byte[] bs=_getBytesFromUnicode(ss); byte[] be=_doDESEncoding(key,iv,bs); byte[] bmd5=(new MD5CryptoServiceProvider()).ComputeHash(bs); byte[] be2=_combinateBytes(bmd5,key,iv,be); return System.Convert.ToBase64String(be2); } //解密方法 public string MyDecoding(string ss) { byte[] bs=System.Convert.FromBase64String(ss); byte[] bs2=_doDESDecoding(bs); if( bs2==null ) return null; else return _getUnicodeFromBytes(bs2); } }
4.编译生成动态链接库SXCryptPwd.dll
在.net命令提示下注册动态链接库 regasm /tlb SXCryptPwd.tlb SXCryptPwd.dll。这样就注册成了COM组件。
5.在asp下的应用
<% set obj = Server.CreateObject("MyEnCrypt") dim str1 str1 = obj.MyEncoding("测试.Net组件") // 加密 response.write("strEnCript=" & str1 & "<br>") dim str2 str2 = obj.MyDecoding(str1) // 解密 response.write("strDecrypt=" & str2 & "<br>") %>