在“经典”ASP和ASP.NET 2.0中加密/解密数据

在“经典”ASP和ASP.NET 2.0中加密/解密数据

问题描述:

我已经得到了一个我想加密的字符串,我想这样做的方式是“经典”ASP应用程序和ASP.NET 2.0应用程序可以解密它。什么是最好的方式来做到这一点?在“经典”ASP和ASP.NET 2.0中加密/解密数据

我一直在网上寻找不同的解决方案。我已经看过使用DPAPI,但它是每台机器,所以没有了。在每台服务器上加密的工作太多。我也考虑过对web.config中的值进行加密,但“经典”的ASP将无法读取它。

有没有其他想法呢?

在此先感谢!

+0

我不得不尝试做同样的事情;尽管我专门寻找了一个经典的asp库,可以解密由.NET中包含的Rijndael库加密的文本。最后,我们能够在asp.net中重写页面:-S – STW 2009-08-11 19:10:30

您可以尝试在经典的asp页面中以activex dll的形式使用Chilcat Crypt组件,并使用.NET System.Security.Cryptography库对字符串进行解密。在这两种情况下,您都可以使用AES/Rinjdael或其他加密算法。

+0

您将在哪里存储密钥? – 2009-08-11 19:31:10

+0

为了向您提供更好的解决方案,我需要了解更多关于应用程序的信息。例如,有不同的服务器?或者只有两个应用程序在同一台服务器?为什么不使用简单的文件来存储密钥?或更好:为什么不使用来自相对变量种子的计算密钥而不需要存储它? – backslash17 2009-08-11 20:34:43

使用加密API的旧标准COM dll a.k.a. capicom.dll是你可以使用的东西。这不是我曾经使用过的最困难的事情,但它有很好的文档记录,并且已经安装在99%的微软框中。您可以在http://msdn.microsoft.com/en-us/library/ms995332.aspx找到相关信息。如果你用classic asp编写所有东西,那么在.net中移植它并使用PIvoke api来使用相同的逻辑应该相当容易。

我在我们的网站上遇到了这个问题,该问题使用了VB.NET的ASP &。此外,内部实用程序是用C#,VB6 & VB.NET编写的。所有程序都需要能够交换加密数据。

为了解决这个问题,我写了一个VB6 &我转换为.NET的VBScript加密程序。它允许我在各个平台上拥有相同的数据。我选择的加密&哈希是RC4和MD5。这两个功能都有很多增强功能,例如MD5是一个盐腌版本,RC4包含一个CRC校验和一个使用多个密钥进行双重加密的选项。

MD5和RC4的基本代码很容易获得,它们都可以轻松转换。

您是否考虑过创建一个ASP.NET Web服务来为您执行加密?然后,您可以通过经典ASP应用程序通过SSL调用Web服务,然后使用ASP.NET应用程序中的相同后端库进行解密。