簡體   English   中英

ASP Classic和.NET上的MD5

[英]MD5 on ASP Classic and .NET

我有一個工作的.NET Web應用程序,該應用程序使用MD5對特定字符串執行哈希和加密。 該字符串將存儲在cookie中。

問題是,我將需要從ASP經典應用程序驗證此cookie。

據我所知,ASP classic中沒有內置的密碼提供程序,因此我可能需要復制/編寫自己的MD5算法實現。

是否有准備好使用的實現方式,最好是開源的(我不希望流氓代碼在世界范圍內發送字符串),並且與.NET兼容嗎?

僅使用執行驗證所需的字節創建您自己的.net DLL,然后從ASP調用它!

方法如下: 將.NET組件暴露給COM

.Net密碼學名稱空間中的大部分只是Windows CryptoAPI的包裝,您也許可以直接使用它,但是最終可能會很痛苦。 此頁面可能會有所幫助... http://www.codeproject.com/KB/asp/adrian_bacaianu.aspx

在Web上對VBScript MD5的快速搜索發現了很多

而不是剪切和粘貼的最好的一個我發現這里

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

用Java語言實現的Google Closure庫包含一個MD5哈希類。 由於Closure庫是通過Apache Source License授權的,因此任何人都可以自由修改和重新使用它。

這是該MD5哈希的一個版本 ,已修改為無需任何Closure前提條件即可使用。 您可以像這樣使用它:

        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類需要使用shim

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM