[英]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.