【问题标题】:Encrypt/decrypt data in "classic" ASP and ASP.NET 2.0在“经典”ASP 和 ASP.NET 2.0 中加密/解密数据
【发布时间】:2010-11-18 17:44:56
【问题描述】:

我有一个要加密的字符串,并且我想以“经典” ASP 应用程序和 ASP.NET 2.0 应用程序可以解密它的方式进行加密。最好的方法是什么?

我一直在网上搜索不同的解决方案。我看过使用 DPAPI,但它是每台机器的,所以就这样了。在每台服务器上加密它的工作量太大。我也考虑过加密 web.config 中的值,但“经典”ASP 将无法读取它。

还有其他想法吗?

提前致谢!

【问题讨论】:

  • 我以前也曾尝试过这样做;尽管我一直在寻找一个经典的 asp 库,它可以解密由 .NET 中包含的 Rijndael 库加密的文本。最后我们能够在asp.net中重写页面:-S

标签: asp.net encryption asp-classic


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 你会将密钥存储在哪里?
    • 为了向您推荐更好的解决方案,我需要了解有关该应用程序的更多信息。例如,有不同的服务器?还是同一服务器中只有两个应用程序?为什么不使用一个简单的文件来存储密钥?或更好:为什么不使用来自相对变量种子的计算键而不需要存储它?
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      为了解决这个问题,我编写了一个 VB6 和 VBScript 加密例程,并将其转换为 .NET。它允许我跨平台拥有相同的数据。我选择的加密和散列是 RC4 和 MD5。两者都通过多项功能得到了显着增强,例如 MD5 是加盐版本,而 RC4 包含 CRC 检查和使用多个密钥进行双重加密的选项。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-05
        • 1970-01-01
        • 1970-01-01
        • 2018-11-16
        • 1970-01-01
        相关资源
        最近更新 更多