ASP Classic和.NET上的MD5

时间:2009-11-03 18:19:14

标签: .net asp-classic vbscript cryptography

我有一个可用的.NET Web应用程序,它使用MD5对某个字符串执行散列和加密。该字符串将存储在cookie中。

问题是,我需要从ASP经典应用程序验证这个cookie。

据我所知,ASP classic中没有内置的加密提供程序,因此我可能需要复制/编写自己的MD5算法实现。

是否有任何可以使用的实现,最好是开源(我不希望流氓代码在世界各地发送字符串),并且与.NET对应物兼容?

5 个答案:

答案 0 :(得分:3)

仅使用执行验证所需的字节创建您自己的.net DLL,然后从ASP调用它!

以下是:Exposing .NET Components to COM

答案 1 :(得分:2)

大多数.Net Cryptography命名空间只是Windows'CryptoAPI的包装器,您可以直接使用它,但这可能最终会让您感到痛苦。此页面可能会有所帮助...... http://www.codeproject.com/KB/asp/adrian_bacaianu.aspx

答案 2 :(得分:1)

VBScript MD5的快速网络搜索显示 lot

而不是剪切和粘贴我发现的最好的是here

答案 3 :(得分:1)

即使您的首选语言是VBScript(或其他),您也可以在经典ASP中使用Javascript。

在Javascript中实现的Google Closure library包含MD5哈希类。由于Closure lib是通过Apache Source License获得许可的,任何人都可以自由修改和重用它。

已修改为可在没有任何Closure先决条件的情况下使用的MD5哈希的

Here is a version。您可以像这样使用它:

        var md5 = new Md5();
        md5.update(bytes); // array of byte values
        hash = md5.digest();

如果您想计算字符串的MD5哈希值,可以使用以下字符串扩展名:

// extension to the string object
if (typeof String.prototype.toMd5 != 'function') {
    String.prototype.toMd5 = function () {
        var s = this, bytes = [],  i,  L = s.length, c,
            md5, hash;
        // assume all 8-bit chars (eg, ascii, IBM-437, etc);
        // take lower 8 bits of each string char.
        for (i = 0; i < L; ++i) {
            c = s.charCodeAt(i);
            bytes.push(c & 255);
        }
        md5 = new Md5();
        md5.update(bytes);
        hash = md5.digest();
        return hash;
    };
}

将md5类包含在.asp文件中,如下所示:

<%@ language="Javascript" %>
<script language="Javascript" runat="server" src='md5.js'></script>
<script language="Javascript" runat="server" src='arrayExtensions.js'></script>

<script language="Javascript" runat="server">
(function() {
   ...
}());
</script>

你可以在Javascript中使用它,如下所示:

    var subject="The quick brown fox jumps over the lazy dog",
        hash = subject.toMd5(),
        g = hash.map(function(x){return x.toString(16);}),
        stringRep = g.join('');

按预期打印出stringRep 9e107d9d372bb6826bd81d3542a419d6

在VBScript中使用该Md5类需要a shim

答案 4 :(得分:0)