asp访问c#创建的加密解密dll(封装DESCryptoServiceProvider)
2008-11-24 17:47
1011 查看
参考了http://www.80diy.com/home/20040201/20/2693224.html
http://www.i-gou.com/bbs/dispbbs.asp?boardID=16&ID=1230&page=1
这里只是写的更详细一些
从COM组件调用.NET组件编程实战
作者:朱学武
需求:asp.net主站有些信息使用DES方式加解密。分站是asp的信息使用md5加密。现在要统一成使用DES方式加密。
分析,这就涉及到asp调用vs2005写的dll问题。
步骤:
1.使用vs2005编写DLL(在一台机器上:windows2003+vs2005)。
新建一个c#类库工程。//文件名:StringCrypt.cs
using System;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.IO;
using System.Text;
namespace jonson
说明:注意上面的Guid是使用vs.net工具菜单里面的创建guid工具生成的,这个每个Com组件所必须的。在vs2005中点击“工具-创建GUID”,在GUID Format中选择第4项Registry Format (ie. xxxxxxxx-xxxx...xxxx),点击“New GUID”,在“Reslut”中即可看到新的GUID。点击Copy,即被粘贴到剪切板上。
2.生成snk文件
使用vs.net的“Vsitual Studio .Net工具”-->Vistual Studio .Net命令提示符。在命令行内打下cd c:\ <回车>
sn -k myKey.snk<回车>
这样就在C盘根目录下生成一个名叫myKey.snk的强名称文件,然后将其拷贝到上述工程目录中(与StringCrypt.cs文件同目录)后关闭提示符窗口。
在vs.net的那个类库工程自动生成的AssemblyInfo.cs文件内
把
[assembly: ComVisible(false)]
改成
[assembly: ComVisible(true)]
把[assembly: AssemblyKeyFile("")]改成[assembly: AssemblyKeyFile("..\\..\\myKey.snk ")]
然后按Shift + Ctrl + B键生成dll库(使用Release模式),StringCrypt.dll。这时候,程序集就建立成功了。
3.注册该程序集并创建一个类型库(在另外一台机器上:windows2003+framework2.0。注意这台机器是asp开放环境,没有安装vs2005,只安装了interDev6)
把“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727”加入到系统环境变量path中。(右键点击“我的电脑-属性-高级-环境变量”在中系统环境变量中找到path,双击,在变量值的最前面加分号;然后再分号的前面,把上面的路径拷贝进去。确定。)
把上面生成的dll文件和pdb文件拷贝到这台机器上的一个目录中。打开cmd。把路径设置为该目录
在cmd中,输入
regasm StringCrypt.dll /tlb:StringCrypt.tlb /CodeBase
cmd提示:
Microsoft (R) .NET Framework Assembly Registration Utility 2.0.50727.42
Copyright (C) Microsoft Corporation 1998-2004. All rights reserved.
Types registered successfully
Assembly exported to 'C:\StringCrypt\bin\Release\StringCrypt.tlb', and the type
library was registered successfully
然后再目录中产生了一个文件:StringCrypt.tlb
4.在asp页面中调用
asp内容:
<%
set obj = Server.CreateObject("jonson.StringCrypt")
Response.write(obj.Encrypt("ab","fk58Fgju"))
Response.write("<br>")
response.write(obj.Decrypt("B7C0E7C545D29078","fk58Fgju"))
%>
把该文件放到iis站点下面。
浏览即可,看到结果:
B7C0E7C545D29078
ab
更新dll:
由于需要扩展dll到功能,需要在dll中增加一些方法。如果重新到目标机器上注册,就需要把原来注册的dll注销。
regasm /u StringCrypt.dll /tlb:StringCrypt.tlb /CodeBase
注销之后,就可以重新在注册新的dll。
http://www.i-gou.com/bbs/dispbbs.asp?boardID=16&ID=1230&page=1
这里只是写的更详细一些
从COM组件调用.NET组件编程实战
作者:朱学武
需求:asp.net主站有些信息使用DES方式加解密。分站是asp的信息使用md5加密。现在要统一成使用DES方式加密。
分析,这就涉及到asp调用vs2005写的dll问题。
步骤:
1.使用vs2005编写DLL(在一台机器上:windows2003+vs2005)。
新建一个c#类库工程。//文件名:StringCrypt.cs
using System;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.IO;
using System.Text;
namespace jonson
说明:注意上面的Guid是使用vs.net工具菜单里面的创建guid工具生成的,这个每个Com组件所必须的。在vs2005中点击“工具-创建GUID”,在GUID Format中选择第4项Registry Format (ie. xxxxxxxx-xxxx...xxxx),点击“New GUID”,在“Reslut”中即可看到新的GUID。点击Copy,即被粘贴到剪切板上。
2.生成snk文件
使用vs.net的“Vsitual Studio .Net工具”-->Vistual Studio .Net命令提示符。在命令行内打下cd c:\ <回车>
sn -k myKey.snk<回车>
这样就在C盘根目录下生成一个名叫myKey.snk的强名称文件,然后将其拷贝到上述工程目录中(与StringCrypt.cs文件同目录)后关闭提示符窗口。
在vs.net的那个类库工程自动生成的AssemblyInfo.cs文件内
把
[assembly: ComVisible(false)]
改成
[assembly: ComVisible(true)]
把[assembly: AssemblyKeyFile("")]改成[assembly: AssemblyKeyFile("..\\..\\myKey.snk ")]
然后按Shift + Ctrl + B键生成dll库(使用Release模式),StringCrypt.dll。这时候,程序集就建立成功了。
3.注册该程序集并创建一个类型库(在另外一台机器上:windows2003+framework2.0。注意这台机器是asp开放环境,没有安装vs2005,只安装了interDev6)
把“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727”加入到系统环境变量path中。(右键点击“我的电脑-属性-高级-环境变量”在中系统环境变量中找到path,双击,在变量值的最前面加分号;然后再分号的前面,把上面的路径拷贝进去。确定。)
把上面生成的dll文件和pdb文件拷贝到这台机器上的一个目录中。打开cmd。把路径设置为该目录
在cmd中,输入
regasm StringCrypt.dll /tlb:StringCrypt.tlb /CodeBase
cmd提示:
Microsoft (R) .NET Framework Assembly Registration Utility 2.0.50727.42
Copyright (C) Microsoft Corporation 1998-2004. All rights reserved.
Types registered successfully
Assembly exported to 'C:\StringCrypt\bin\Release\StringCrypt.tlb', and the type
library was registered successfully
然后再目录中产生了一个文件:StringCrypt.tlb
4.在asp页面中调用
asp内容:
<%
set obj = Server.CreateObject("jonson.StringCrypt")
Response.write(obj.Encrypt("ab","fk58Fgju"))
Response.write("<br>")
response.write(obj.Decrypt("B7C0E7C545D29078","fk58Fgju"))
%>
把该文件放到iis站点下面。
浏览即可,看到结果:
B7C0E7C545D29078
ab
更新dll:
由于需要扩展dll到功能,需要在dll中增加一些方法。如果重新到目标机器上注册,就需要把原来注册的dll注销。
regasm /u StringCrypt.dll /tlb:StringCrypt.tlb /CodeBase
注销之后,就可以重新在注册新的dll。
相关文章推荐
- asp访问c#创建的加密解密dll(封装DESCryptoServiceProvider)
- C# RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密
- C# RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密
- C# RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密
- C# RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密
- [C# & Java].Net加密(DESCryptoServiceProvider) VS. Java解密
- C# RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密
- DESCryptoServiceProvider 加密,解密
- C# RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密
- 加密之DESCryptoServiceProvider加密解密
- C# RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密
- RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密
- DESCryptoServiceProvider加密解密的简单使用例子
- DESCryptoServiceProvider 加密与解密
- DESCryptoServiceProvider加密解密
- DESCryptoServiceProvider 加密与解密
- DESCryptoServiceProvider 类加密和解密
- C# RSACryptoServiceProvider加密解密签名验签和DESCryptoServic
- 使用openssl解密c#的DESCryptoServiceProvider的密文
- DESCryptoServiceProvider加密、解密