هناك العديد من MD5s لأحرف ASP المشفرة على الإنترنت، وهي شائعة جدًا، لكن MD5 للملفات نادرة جدًا بالفعل بسبب القيود المفروضة على لغة ASP نفسها. نحن نعلم أن md5 للسلسلة يمكنه تشفير النص العادي بشكل لا رجعة فيه لضمان أمان تخزين البيانات أو نقلها. وبالمثل، يتم استخدام تشفير الملفات md5 أيضًا لضمان عدم تعديلها والتحقق منها أثناء النقل عبر الشبكة. وهناك استخدام آخر في المواقع الشخصية: حيث يمكن التأكد من أن الصور أو الملفات التي تم تحميلها فريدة من نوعها. المبدأ هو أنه بعد التحميل إلى الخادم، يتم تسجيل قيمة md5 للملف الذي تم تحميله في قاعدة البيانات في نفس الوقت، وبهذه الطريقة، في المرة التالية التي يتم فيها تحميل الملف نفسه، يمكننا الاستعلام عن قاعدة البيانات لمعرفة ما إذا كانت كذلك نفس الملف، إذا كانت قيمة md5 هي نفسها، فسنعتبرها هي نفسها بالنسبة للملفات، وقيمة md5 هي "بطاقة الهوية" للملف. في الواقع، لدى Baidu أيضًا تطبيقات في هذا المجال بالنسبة للصور الموجودة على Baidu والنقر فوق الصورة، في بعض الأحيان "يمكنك أيضًا النقر فوق الرابط التالي لعرض هذه الصورة: XXX URL"، المبدأ هو نفسه، ملف md5.
دون مزيد من اللغط، دعونا نبدأ.
1. يستدعي asp برنامج .Net من خلال الوضع التفاعلي xml لتنفيذ الملف md5
نظرًا للقيود المفروضة على لغته الخاصة، لا يستطيع asp تنفيذ ملفات md5، ولكن يمكن لـ .net فعل ذلك بالفعل. هل من الممكن تنفيذ md5 على الملف من خلال .net، ثم إرسال المعلومات إلى asp لاستلامها، بحيث يمكن ذلك؟ يمكن تحقيق md5 لـ asp؟ الإجابة هذا أمر مؤكد. يتضمن ذلك التفاعل بين برامج ASP و.NET. لقد كتبت فئة ASP من قبل: "فئات إرسال واستقبال بيانات XML الخاصة بـ ASP". يمكنك مشاهدتها على مساحة Baidu الخاصة بي: http://hi.baidu.com /manbutianmi /blog/item/dec182fc6db36587b801a0f6.html يدور حول معالجة asp لإرسال واستقبال بيانات xml، ويمكن استخدامه للاتصال بين واجهات API بين الأنظمة غير المتجانسة المختلفة. تصادف أن هذه المقالة هي تطبيق لهذه الفئة. الكود كما يلي:
كود الجانب asp
xmlcls.asp
<%
يعالج Rem إرسال واستقبال فئات بيانات XML
'------------------------------------------------ -
'يجب الاحتفاظ بمعلومات حقوق الطبع والنشر هذه عند إعادة الطباعة
'المؤلف: وكمان
"موقع الويب: شبكة سمات الهاتف المحمول: http://www.shouji138.com."
"الإصدار: الإصدار 1.0
'------------------------------------------------ -
ClassXmlClass
تعريف متغير ريم
XmlDoc خاص، XmlHttp
رمز الرسالة الخاصة، مفتاح النظام، XmlPath
خاص m_GetXmlDoc،m_url
تهيئة
m_XmlDocAccept الخاصة
Rem
فئة فرعية خاصة_Initialize()
على خطأ استئناف التالي
رمز الرسالة = ""
XmlPath = ""
تعيين XmlDoc = Server.CreateObject("msxml2.FreeThreadedDOMDocument.3.0")
XmlDoc.ASYNC = خطأ
نهاية الفرعية
ريم يدمر الكائن
فئة فرعية خاصة_Terminate()
إذا كان IsObject(XmlDoc) فاضبط XmlDoc = لا شيء
إذا كان IsObject(m_XmlDocAccept) فاضبط m_XmlDocAccept = لا شيء
إذا كان IsObject(m_GetXmlDoc) فاضبط m_GetXmlDoc = لا شيء
نهاية الفرعية
'يبدأ تعريف السمة العامة --------------------------
رسالة خطأ ريم
الملكية العامة احصل على الرسالة()
الرسالة = رمز الرسالة
نهاية الملكية
Rem العنوان لإرسال XML إليه
عنوان URL للملكية العامة (str)
m_url = str
نهاية الملكية
'نهاية تعريف السمة العامة --------------------------
'بدء العملية والطريقة الخاصة --------------------------
تحميل العينية XML
تحميل فرعي خاصXmlData()
إذا كان XmlPath <> "" إذن
إذا لم يكن XmlDoc.Load(XmlPath) إذن
XmlDoc.LoadXml "<?xml version=""1.0"" encoding=""gb2312""?><root/>"
نهاية إذا
آخر
XmlDoc.LoadXml "<?xml version=""1.0"" encoding=""gb2312""?><root/>"
نهاية إذا
تحويل حرف
Sub
Rem
وظيفة خاصة AnsiToUnicode(ByVal str)
ديم i، j، c، i1، i2، u، fs، f، p
أنسي تو يونيكود = ""
ع = ""
لأني = 1 إلى لين (شارع)
ج = منتصف (شارع، ط، 1)
ي = تصاعدي (ج)
إذا كان j <0 ثم
ي = ي + 65536
نهاية إذا
إذا كان j >= 0 و j <= 128 إذن
إذا ع = "ج" ثم
AnsiToUnicode = " " & AnsiToUnicode
ع = "ه"
نهاية إذا
AnsiToUnicode = AnsiToUnicode & c
آخر
إذا ع = "ه" ثم
AnsiToUnicode = AnsiToUnicode & " "
ع = "ج"
نهاية إذا
AnsiToUnicode = AnsiToUnicode & ("&#" & j & ";")
نهاية إذا
التالي
وظيفة النهاية
تحويل حرف ريم
الدالة الخاصة strAnsi2Unicode(asContents)
ديم لين1،أنا،فارتشار،فاراسك
strAnsi2Unicode = ""
len1=LenB(asContents)
إذا كان len1=0 ثم قم بالخروج من الوظيفة
لأني = 1 إلى len1
varchar=MidB(asContents,i,1)
فاراسك = تصاعدي (فارشار)
إذا فاراسك> 127 ثم
إذا كان MidB(asContents,i+1,1)<>"" إذن
strAnsi2Unicode = strAnsi2Unicode & chr(ascw(midb(asContents,i+1,1) & varchar))
نهاية إذا
ط=ط+1
آخر
strAnsi2Unicode = strAnsi2Unicode & Chr(varasc)
نهاية إذا
التالي
وظيفة النهاية
يقوم Rem بإلحاق الأحرف بالملف
WriteStringToFile الفرعي الخاص (اسم الملف، شارع)
على خطأ استئناف التالي
خافت خ، تيسي
تعيين fs= createobject("script_ing.filesystemobject")
إذا لم يكن IsObject(fs) ثم قم بالخروج من Sub
تعيين ts=fs.OpenTextFile(Server.MapPath(filename),8,True)
ts.writeline(شارع)
ts.إغلاق
تعيين نهاية الخبر = لا شيء
تعيين خ = لا شيء
نهاية الفرعية
'نهاية العملية والطريقة الخاصة --------------------------
'تبدأ الطريقة العامة--www.devdao.com------------------------
'''''''''' أرسل جزء XML للبدء
Rem يقوم بملء كائن XmlDoc من ملف xml خارجي
التحميل الفرعي العامXmlFromFile(المسار)
XmlPath = Server.MapPath(مسار)
تحميلXmlData()
نهاية الفرعية
Rem قم بملء كائن XmlDoc بسلسلة
التحميل الفرعي العامXmlFromString(str)
XmlDoc.LoadXml شارع
نهاية الفرعية
يقوم Rem بتعيين معلمات العقدة مثل NodeValue "appID"، وAppID، و1، وFalse
'------------------------------------------------ -
"المعلمة:
'اسم عقدة NodeName
"قيمة نص العقدة."
'نوع حفظ NodeType [text=0,cdata=1]
'blnEncode ما إذا كان سيتم تشفير [صحيح، خطأ]
'------------------------------------------------ -
قيمة العقدة الفرعية العامة (Byval NodeName،Byval NodeText،Byval NodeType،Byval blnEncode)
Dim ChildNode، إنشاء قسم CDATA
NodeName = Lcase(NodeName)
إذا كان XmlDoc.documentElement.selectSingleNode(NodeName) لا شيء، إذن
تعيين ChildNode = XmlDoc.documentElement.appendChild(XmlDoc.createNode(1,NodeName,""))
آخر
تعيين ChildNode = XmlDoc.documentElement.selectSingleNode(NodeName)
نهاية إذا
إذا blnEncode = صحيح ثم
NodeText = AnsiToUnicode(NodeText)
نهاية إذا
إذا NodeType = 1 ثم
ChildNode.Text = ""
تعيين CreateCDATASection = XmlDoc.createCDATASection(Replace(NodeText,"]]>"،"]]>"))
ChildNode.appendChild(createCDATASection)
آخر
ChildNode.Text = NodeText
نهاية إذا
نهاية الفرعية
'------------------------------------------------ -
'احصل على قيمة العقدة في حزمة XML المرسلة
"المعلمة:
'اسم عقدة Str
'------------------------------------------------ -
الملكية العامة GetXmlNode(ByvalStr)
إذا كان XmlDoc.documentElement.selectSingleNode(Str) يساوي لا شيء، إذن
XmlNode = "خالية"
آخر
XmlNode = XmlDoc.documentElement.selectSingleNode(Str).text
نهاية إذا
نهاية الخاصية
'---------------------------------------------- -- ---
'احصل على كائن بيانات XML الذي تم إرجاعه
'مثال:
'عندما لا يكون GetXmlData فارغًا، فإن GetXmlData يكون كائن XML
'------------------------------------------------ -
الملكية العامة احصل على GetXmlData()
قم بتعيين GetXmlData = m_GetXmlDoc
نهاية الملكية
'------------------------------------------------ -
"أرسل حزمة XML."
'------------------------------------------------ -
إرسالHttpData العام الفرعي ()
Dim i,GetXmlDoc,LoadAppid
تعيين Xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")
تعيين GetXmlDoc = Server.CreateObject("msxml2.FreeThreadedDOMDocument.3.0") ' إرجاع حزمة xml
XmlHttp.Open "POST"، m_url، خطأ
XmlHttp.SetRequestHeader "نوع المحتوى"، "نص/XML"
XmlHttp.أرسل XmlDoc
'Response.Write strAnsi2Unicode(xmlhttp.responseBody)
إذا كان GetXmlDoc.load(XmlHttp.responseXML) ثم
اضبط m_GetXmlDoc = GetXmlDoc
آخر
messageCode = "خطأ في طلب البيانات!"
الخروج من الباطن
نهاية إذا
تعيين GetXmlDoc = لا شيء
اضبط XmlHttp = لا شيء
نهاية الفرعية
'------------------------------------------------ -
"طباعة إرسال طلب بيانات XML."
'------------------------------------------------ -
الطباعة الفرعية العامةSendXmlData()
الاستجابة.واضحة
Response.ContentType = "نص/XML"
Response.CharSet = "gb2312"
الاستجابة.انتهاء الصلاحية = 0
Response.اكتب "<?xml version=""1.0"" encoding=""gb2312""?>"&vbNewLine
الاستجابة.اكتب XmlDoc.documentElement.XML
نهاية الفرعية
'------------------------------------------------ -
'طباعة بيانات XML التي تم إرجاعها
'------------------------------------------------ -
الطباعة الفرعية العامة GetXmlData()
الاستجابة.واضحة
Response.ContentType = "نص/XML"
Response.CharSet = "gb2312"
الاستجابة.انتهاء الصلاحية = 0
إذا كان IsObject(m_GetXmlDoc) إذن
Response.اكتب "<?xml version=""1.0"" encoding=""gb2312""?>"&vbNewLine
الاستجابة.اكتب m_GetXmlDoc.documentElement.XML
آخر
Response.اكتب "<?xml version=""1.0"" encoding=""gb2312""?><root></root>"
نهاية إذا
نهاية الفرعية
يحفظ Rem بيانات طلب الإرسال بتنسيق XML في ملف يسمى sendxml_date.txt
العامة الفرعية SaveSendXmlDataToFile ()
اسم الملف خافت، شارع
اسم الملف = "sendxml_" & DateValue (الآن) & ".txt"
شارع = ""
str = str & ""& Now() & vbNewLine
str = str & "-------------------------------------------- --- "& vbNewLine
str = str & "<?xml version=""1.0"" encoding=""gb2312""?>" & vbNewLine
str = str & XmlDoc.documentElement.XML & vbNewLine
str = str & "-------------------------------------------- --- "& vbNewLine
str = str & vbNewLine & vbNewLine & vbNewLine
اسم الملف WriteStringToFile، str
نهاية الفرعية
يقوم Rem بحفظ بيانات XML التي تم إرجاعها إلى ملف يسمى getxml_date.txt
العام الفرعي SaveGetXmlDataToFile ()
اسم الملف خافت، شارع
اسم الملف = "getxml_" وDateValue (الآن) و".txt"
شارع = ""
str = str & ""& Now() & vbNewLine
str = str & "-------------------------------------------- --- "& vbNewLine
إذا كان IsObject(m_GetXmlDoc) إذن
str = str & "<?xml version=""1.0"" encoding=""gb2312""?>" & vbNewLine
str = str & m_GetXmlDoc.documentElement.XML
آخر
str = str & "<?xml version=""1.0"" encoding=""gb2312""?>" & vbNewLine & "<root>" & vbNewLine & "</root>"
نهاية إذا
str = str & vbNewLine
str = str & "-------------------------------------------- --- "& vbNewLine
str = str & vbNewLine & vbNewLine & vbNewLine
اسم الملف WriteStringToFile، str
نهاية الفرعية
'------------------------------------------------ -
'احصل على معلومات العقدة لملف XML الذي تم إرجاعه
'XmlClassObj.GetSingleNode("//msg")
'------------------------------------------------ -
الوظيفة العامة GetSingleNode(عقدة)
إذا كان IsObject(m_GetXmlDoc) إذن
GetSingleNode = m_GetXmlDoc.documentElement.selectSingleNode(nodestring).text
آخر
GetSingleNode = ""
نهاية إذا
وظيفة النهاية
'''''''''''''''''نهاية إرسال جزء XML
'''''''''''''''''يبدأ جزء XML المتلقي
'------------------------------------------------ -
'استلام حزمة XML، يتم الحصول على معلومات الخطأ من خلال كائن الرسالة
'------------------------------------------------ -
الوظيفة العامة AcceptHttpData()
خافت XMLdom
تعيين XMLdom = Server.CreateObject("Microsoft.XMLDOM")
XMLdom.Async = خطأ
XMLdom.Load(طلب)
إذا كان XMLdom.parseError.errorCode <> 0 ثم
messageCode = "غير قادر على تلقي البيانات بشكل صحيح" و"Descript_ion:" & XMLdom.parseError.reason & "<br>السطر: " & XMLdom.parseError.Line
تعيين m_XmlDocAccept = Null
آخر
اضبط m_XmlDocAccept = XMLdom
نهاية إذا
وظيفة النهاية
'---------------------------------------------- -- ---
'العودة لتلقي معلومات عقدة حزمة XML
'XmlClassObj.GetSingleNode("//msg")
'------------------------------------------------ -
الوظيفة العامة AcceptSingleNode(عقدة)
إذا كان IsObject(m_XmlDocAccept) إذن
AcceptSingleNode = m_XmlDocAccept.documentElement.selectSingleNode(nodestring).text
آخر
قبول سينجلنود = ""
نهاية إذا
وظيفة النهاية
'------------------------------------------------ -
'اطبع بيانات XML المستلمة من الطرف المتلقي
'------------------------------------------------ -
الطباعة الفرعية العامةAcceptXmlData()
الاستجابة.واضحة
Response.ContentType = "نص/XML"
Response.CharSet = "gb2312"
الاستجابة.انتهاء الصلاحية = 0
إذا كان IsObject(m_XmlDocAccept) إذن
Response.اكتب "<?xml version=""1.0"" encoding=""gb2312""?>"&vbNewLine
Response.Write m_XmlDocAccept.documentElement.XML
آخر
Response.اكتب "<?xml version=""1.0"" encoding=""gb2312""?><root></root>"
نهاية إذا
نهاية الفرعية
يقوم Rem بحفظ بيانات حزمة XML المستلمة في ملف يسمى Acceptxml_date.txt
فرعي عام SaveAcceptXmlDataToFile()
اسم الملف خافت، شارع
اسم الملف = "acceptxml_" & DateValue (الآن) & ".txt"
شارع = ""
str = str & ""& Now() & vbNewLine
str = str & "-------------------------------------------- --- "& vbNewLine
إذا كان IsObject(m_XmlDocAccept) إذن
str = str & "<?xml version=""1.0"" encoding=""gb2312""?>" & vbNewLine
str = str & m_XmlDocAccept.documentElement.XML
آخر
str = str & "<?xml version=""1.0"" encoding=""gb2312""?>" & vbNewLine & "<root>" & vbNewLine & "</root>"
نهاية إذا
str = str & vbNewLine
str = str & "-------------------------------------------- --- "& vbNewLine
str = str & vbNewLine & vbNewLine & vbNewLine
اسم الملف WriteStringToFile، str
نهاية الفرعية
'''''''''''''''''احصل على جزء xml وانتهى
Rem. احفظ بيانات تصحيح الأخطاء في ملف باسم debugnote_date.txt
SaveDebugStringToFile الفرعي العام (debugstr)
اسم الملف خافت، شارع
اسم الملف = "debugnote_" & DateValue (الآن) & ".txt"
شارع = ""
str = str & ""& Now() & vbNewLine
str = str & "-------------------------------------------- --- "& vbNewLine
str = str & debugstr & vbNewLine
str = str & "-------------------------------------------- --- "
str = str & vbNewLine & vbNewLine & vbNewLine
اسم الملف WriteStringToFile، str
End Sub
'تنتهي الطريقة العامة --------------------------
نهاية الفصل
%>
filemd5fun.asp
<!--#Include File="xmlcls.asp"-->
<%
يحصل Rem على md5 للملف، والمعلمة هي اسم الملف
الدالة GetFileMD5 (اسم الملف)
Const Apisysno = "k8n6g2b0m1a6b0f6e8" 'يجب أن تكون قيمة المفتاح للواجهة متسقة لمنع التطبيق غير القانوني للواجهة
DimXmlClassObj
Set XmlClassObj = new XmlClass 'إنشاء كائن
XmlClassObj.LoadXmlFromString("<?xml version=""1.0"" encoding=""gb2312""?><root/>") 'املأ كائن XMLDOC بأحرف xml واستخدمه لإرسال xml
XmlClassObj.URL = " http://www.shouji138.com/aspnet2/FileMD5.aspx " 'قم بتعيين عنوان URL للاستجابة، والذي يجب تغييره إلى عنوان URL الخاص بك
ريم تنسيق XML
Rem "<?xml version="1.0" encoding="gb2312"?>
ريم <الجذر>
ريم <sysno></sysno>
ريم <apiaction></apiaction>
ريم <اسم الملف></اسم الملف>
ريم </الجذر>
XmlClassObj.NodeValue "sysno",Apisysno,0,False 'القيمة الرئيسية للواجهة لمنع التطبيقات غير القانونية
XmlClassObj.NodeValue "apiaction"، "createfilemd5"، 0، False 'إجراء استجابة للواجهة، يستخدم لتحديد واجهة لأغراض متعددة
XmlClassObj.NodeValue "filename,filename,0,False" مسار الملف واسم الملف، استخدم المسار النسبي'
XmlClassObj.SaveSendXmlDataToFile() 'احفظ حزمة قاعدة بيانات xml المرسلة في ملف txt لأغراض التصحيح
XmlClassObj.SendHttpData() 'إرسال بيانات xml
'XmlClassObj.SaveGetXmlDataToFile() 'حفظ بيانات xml المستلمة
نتيجة معالجة العينية
، الرسالة الخافتة والحالة
الحالة = XmlClassObj.GetSingleNode("//status") 'عرض الحالة، إذا كانت جيدة، فهذا يعني النجاح، وإلا سيحدث خطأ
message = XmlClassObj.GetSingleNode("//message") 'عرض قيمة MD5 التي تم الحصول عليها. إذا كانت الحالة ليست على ما يرام، فإن الرسالة عبارة عن رسالة خطأ
تعيين XmlClassObj = لا شيء
إذا كانت الحالة = "موافق" إذن
GetFileMD5 = message
آخر
GetFileMD5 = ""
نهاية إذا
وظيفة النهاية
%>
test.asp
<!--#تضمين الملف="filemd5fun.asp"-->
<%
Response.اكتب "قيمة md5 لـ web.config هي:" & GetFileMD5("web.config") & "<br />"
Response.اكتب "قيمة md5 للملفات/logo-yy.gif هي:" & GetFileMD5("files/logo-yy.gif") & "<br />"
Response.اكتب "قيمة md5 لـ xmlcls.asp هي:" & GetFileMD5("xmlcls.asp") & "<br />"
%>
رمز .net الجانبي:
MD5.cs
باستخدام النظام؛
باستخدام System.Collections.Generic؛
باستخدام System.Text؛
باستخدام System.IO
مساحة الاسم Winsteps.FileMD5
{
الطبقة العامة MD5
{
سلسلة ثابتة عامة md5_hash (مسار السلسلة)
{
يحاول
{
FileStream get_file = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
System.Security.Cryptography.MD5CryptoServiceProvider get_md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] hash_byte = get_md5.ComputeHash(get_file);
سلسلة resule = System.BitConverter.ToString(hash_byte);
resule = resule.Replace("-", "");
نتيجة الإرجاع؛
}
قبض (الاستثناء ه)
{
إرجاع الرسالة الإلكترونية؛
}
}
}
}
FileMD5.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FileMD5.aspx.cs" Inherits="Winsteps.FileMD5.FileMD5" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml " >
<رئيس التشغيل = "الخادم">
<title>الموقع الإلكتروني لموضوع الهاتف المحمول: http://www.shouji138.com</title>
</الرأس>
<الجسم>
<معرف النموذج = "form1" runat = "الخادم">
<ديف>
</div>
</النموذج>
</الجسم>
</html>
FileMD5.aspx.cs
باستخدام النظام؛
باستخدام System.Data؛
باستخدام System.Configuration؛
باستخدام System.Collections؛
باستخدام System.Web؛
باستخدام System.Web.Security؛
باستخدام System.Web.UI؛
باستخدام System.Web.UI.WebControls؛
باستخدام System.Web.UI.WebControls.WebParts؛
باستخدام System.Web.UI.HtmlControls
باستخدام System.Xml؛
باستخدام System.Configuration؛
مساحة الاسم Winsteps.FileMD5
{
فئة جزئية عامة FileMD5: System.Web.UI.Page
{
Page_Load باطلة محمية (مرسل الكائن، EventArgs e)
{
سلسلة sysno = "11111";
حالة السلسلة = "خطأ"؛
رسالة السلسلة = "خطأ غير محدد"؛
string net2sysno = ConfigurationManager.AppSettings["sysno"];
XmlDocument doc = new XmlDocument();
يحاول
{
doc.Load(Request.InputStream);
sysno = doc.SelectSingleNode("//sysno").InnerText.Trim();
إذا (net2sysno! = سيسنو)
{
message = "تطبيق غير قانوني!";
}
آخر
{
اسم ملف السلسلة = Server.MapPath(doc.SelectSingleNode("//اسم الملف").InnerText.Trim());
الرسالة = MD5.md5_hash(filename);
الحالة = "موافق"؛
}
}
قبض (استثناء على سبيل المثال)
{
message = ex.Message;
}
أخيراً
{
إذا (وثيقة != فارغة)
وثيقة = فارغة؛
}
Response.Clear(); // مسح أحرف HTML
Response.ContentType = "text/xml";
Response.Charset = "GB2312";// إذا كانت سلسلة XML تحتوي على اللغة الصينية
Response.Write("<?xml version="1.0" encoding="GB2312"?>");
Response.Write("<root>");
Response.Write("<status>" + الحالة + "</status>");
Response.Write("<message>" + message + "</message>");
Response.Write("</root>");
الاستجابة. النهاية ()
}
}
}
Web.config
<?xml version="1.0" encoding="utf-8"?>
<التكوين>
<إعدادات التطبيق>
<add key="sysno" value="k8n6g2b0m1a6b0f6e8"></add>
</appSettings>
<system.web>
<httpRuntime executionTimeout="3600" maxRequestLength="1048576"/>
<compilation debug="true" defaultLanguage="c#" />
<وضع الأخطاء المخصصة = "إيقاف" />
<هوية انتحال الشخصية = "صحيح"/>
<وضع المصادقة = "النماذج">
<اسم النماذج = "المنتديات" المسار = "/" تسجيل الدخول Url = "Login.aspx" حماية = "الكل" مهلة = "40">
</النماذج>
</المصادقة>
<pages validateRequest="false"></pages>
<طلب العولمة ترميز = "gb2312" استجابة ترميز = "gb2312" ثقافة = "zh-CN" uiCulture = "zh-CN"/>
</system.web>
</التكوين>
يجب أن يكون sysno الخاص بـ web.config متوافقًا مع Apisysno في filemd5fun.asp، أثناء تطبيق معين، يجب عليك تغيير هذا المفتاح إلى القيمة الخاصة بك لضمان الأمان.
العنوان التجريبي: http://www.shouji138.com/aspnet2/filemd5.asp
على الرغم من أن الكود طويل، إلا أن المبدأ بسيط حيث يرسل ASP بيانات xml إلى asp.net (يحتوي ملف xml على اسم الملف ليكون md5) -> يتلقى asp.net ملف xml وينفذ md5 على الملف -> يُرجع asp.net. النتيجة إلى asp حتى xml (يحتوي ملف xml على قيمة md5 التي تم الحصول عليها)->يحصل asp على xml الذي تم إرجاعه ويوزع قيمة md5.
نطاق التطبيق:
1. عند نقل الملفات بين نظامين، يمكنك إجراء ملف md5 قبل الإرسال وملف md5 بعد الإرسال للتحقق مما إذا كانت القيمتان متساويتين، فهذا يعني أنه لم يتم تعديلهما أثناء عملية النقل.
2. في نظام التحميل، إذا كان مطلوبًا عدم إمكانية تحميل نفس الملف، فيمكن تخزين md5 للملف الذي تم تحميله في قاعدة البيانات. وبهذه الطريقة، إذا تم تحميل نفس الملف في المرة القادمة، فسيكون md5 هو نفس الشيء وسيتم رفض التحميل.
3. في محركات البحث وبرامج Xunlei b2b، بالنسبة للملف md5، تعتبر الملفات التي لها نفس md5 هي نفس الملف، بغض النظر عما إذا كانت أسماء الملفات هي نفسها أم لا، ويمكن مشاركة الملفات من مصادر متعددة.
4. تطبيقات أخرى. . . . .
2. يقوم asp بتنفيذ md5 من خلال مكونات COM (يجب تسجيل المكون على الخادم)
لتسجيل مكون md5 لملف asp، عنوان التنزيل: DelphiASPObj.in_path=Server.Mappath("Web.config") 'مسار الملف
Response.Write "قيمة md5 لـ web.config هي:" & DelphiASPObj.get_path_md5 & "<br />"
اضبط DelphiASPObj=لا شيء
%>
3. مقارنة طريقتين للحصول على الملف md5
الطريقة الأولى هي الحصول على md5 للملف من خلال التفاعل مع بيانات xml مع برنامج asp.net بيئة asp.net، لكن السعر أعلى؛
يتم تنفيذ الطريقة الثانية عن طريق تسجيل مكونات COM، والتي تتطلب أذونات الخادم وهي مناسبة أكثر لأولئك الذين يمتلكون خادمًا.
بالإضافة إلى ذلك، فإن الطريقة الأولى للتفاعل تجعل ASP أكثر مرونة ويمكن استخدامها على خادمين مختلفين لتفاعل البيانات، ويمكن استخدامها على نطاق واسع على منصات مختلفة غير متجانسة.
4. للحصول على عنوان التنزيل، يرجى الانتقال إلى موقع الويب الخاص بي وشبكة سمات الهاتف المحمول لعرض العرض التوضيحي وتنزيل العنوان التجريبي لحزمة البرنامج: http://www.shouji138.com/aspnet2/filemd5.asp
تنزيل حزمة تنزيل البرنامج: