我有一个可用的.NET Web应用程序,它使用MD5对某个字符串执行散列和加密。该字符串将存储在cookie中。
问题是,我需要从ASP经典应用程序验证这个cookie。
据我所知,ASP classic中没有内置的加密提供程序,因此我可能需要复制/编写自己的MD5算法实现。
是否有任何可以使用的实现,最好是开源(我不希望流氓代码在世界各地发送字符串),并且与.NET对应物兼容?
答案 0 :(得分:3)
仅使用执行验证所需的字节创建您自己的.net DLL,然后从ASP调用它!
答案 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)