本文为【用asp获取文件md5值】的汉字拼音对照版显示拼音
网wang上shangasp加jia密mi字zi符fu的deMD5很hen多duo,也ye很hen普pu遍bian,但dan是shi对dui文wen件jian进jin行xingmd5的de确que很hen少shao,因yin为wei受shou到daoasp语yu言yan本ben身shen的de限xian制zhi。我wo们men知zhi道dao字zi符fu串chuan的demd5可ke以yi对dui明ming文wen进jin行xing不bu可ke逆ni的de加jia密mi,从cong而er保bao证zheng数shu据ju储chu存cun或huo者zhe传chuan送song的de安an全quan性xing。同tong样yang的de,对dui文wen件jian进jin行xingmd5加jia密mi也ye是shi为wei了le保bao证zheng在zai网wang络luo传chuan送song时shi不bu被bei修xiu改gai和he校xiao验yan,另ling外wai还huan有you一yi个ge用yong途tu就jiu是shi在zai个ge人ren站zhan点dian里li面mian的de应ying用yong:可ke以yi保bao证zheng上shang传chuan的de图tu片pian或huo文wen件jian具ju有you唯wei一yi性xing。原yuan理li是shi,上shang传chuan到dao服fu务wu器qi之zhi后hou,同tong时shi在zai数shu据ju库ku中zhong记ji录lu该gai上shang传chuan文wen件jian的demd5值zhi,这zhe样yang在zai下xia次ci传chuan同tong样yang文wen件jian的de时shi候hou,可ke以yi通tong过guo查cha询xun数shu据ju库ku是shi否fou是shi相xiang同tong的de文wen件jian,md5值zhi相xiang同tong,我wo们men就jiu认ren为wei它ta是shi相xiang同tong的de文wen件jian,md5值zhi就jiu是shi文wen件jian的de“身shen份fen证zheng”,其qi实shi百bai度du也ye有you这zhe方fang面mian的de应ying用yong,在zai百bai度du搜sou索suo图tu片pian,点dian开kai图tu片pian后hou,有you时shi候hou会hui出chu现xian“您nin还huan可ke以yi点dian击ji以yi下xia链lian接jie查cha看kan到dao这zhe张zhang图tu片pian:XXX网wang址zhi”,原yuan理li也ye是shi一yi样yang,对dui文wen件jian进jin行xingmd5。
废fei话hua少shao说shuo,开kai始shi正zheng文wen。
一yi、asp通tong过guoxml交jiao互hu方fang式shi调tiao用yong.Net程cheng序xu实shi现xian文wen件jianmd5
asp由you于yu本ben身shen语yu言yan的de限xian制zhi,无wu法fa实shi现xian文wen件jian的demd5,但dan是shi.net确que可ke以yi,那na是shi不bu是shi可ke以yi通tong过guo.net对dui文wen件jian进jin行xingmd5,然ran后hou发fa送song信xin息xi给geiasp接jie收shou,这zhe样yang就jiu可ke以yi做zuo到daoasp的demd5了le呢ne,答da案an是shi肯ken定ding的de。这zhe里li涉she及ji到daoasp与yu.net程cheng序xu间jian的de交jiao互hu,我wo以yi前qian写xie过guo一yi个geasp的de类lei:《asp处chu理lixml数shu据ju的de发fa送song、接jie收shou类lei》,可ke以yi上shang我wo的de百bai度du空kong间jian看kan:http://hi.baidu.com/manbutianmi/blog/item/dec182fc6db36587b801a0f6.html,讲jiang的de是shiasp处chu理lixml数shu据ju的de发fa送song与yu接jie收shou,可ke用yong于yu各ge种zhong异yi构gou系xi统tong之zhi间jianAPI接jie口kou间jian通tong讯xun。本ben文wen正zheng好hao是shi这zhe个ge类lei的de一yi个ge应ying用yong。代dai码ma如ru下xia:
asp端duan代dai码ma
xmlcls.asp
<%
Rem 处chu理lixml数shu据ju的de发fa送song、接jie收shou类lei
'--------------------------------------------------
'转zhuan载zai的de时shi候hou必bi须xu保bao留liu此ci版ban权quan信xin息xi
'作zuo者zhe:walkman
'网wang址zhi:手shou机ji主zhu题ti网wang:http://www.shouji138.com
'版ban本ben:ver1.0
'--------------------------------------------------
Class XmlClass
Rem 变bian量liang定ding义yi
Private XmlDoc,XmlHttp
Private MessageCode,SysKey,XmlPath
Private m_GetXmlDoc,m_url
Private m_XmlDocAccept
Rem 初chu始shi化hua
Private Sub Class_Initialize()
On Error Resume Next
MessageCode = ""
XmlPath = ""
Set XmlDoc = Server.CreateObject("msxml2.FreeThreadedDOMDocument.3.0")
XmlDoc.ASYNC = False
End Sub
Rem 销xiao毁hui对dui象xiang
Private Sub Class_Terminate()
If IsObject(XmlDoc) Then Set XmlDoc = Nothing
If IsObject(m_XmlDocAccept) Then Set m_XmlDocAccept = Nothing
If IsObject(m_GetXmlDoc) Then Set m_GetXmlDoc = Nothing
End Sub
'公gong共gong属shu性xing定ding义yi开kai始shi--------------------------
Rem 错cuo误wu信xin息xi
Public Property Get Message()
Message = MessageCode
End Property
Rem 发fa送songxml的de地di址zhi
Public Property Let URL(str)
m_url = str
End Property
'公gong共gong属shu性xing定ding义yi结jie束shu--------------------------
'私si有you过guo程cheng、方fang法fa开kai始shi--------------------------
Rem 加jia载zaixml
Private Sub LoadXmlData()
If XmlPath <> "" Then
If Not XmlDoc.Load(XmlPath) Then
XmlDoc.LoadXml "<?xml version=""1.0"" encoding=""gb2312""?><root/>"
End If
Else
XmlDoc.LoadXml "<?xml version=""1.0"" encoding=""gb2312""?><root/>"
End If
End Sub
Rem 字zi符fu转zhuan化hua
Private Function AnsiToUnicode(ByVal str)
Dim i, j, c, i1, i2, u, fs, f, p
AnsiToUnicode = ""
p = ""
For i = 1 To Len(str)
c = Mid(str, i, 1)
j = AscW(c)
If j < 0 Then
j = j + 65536
End If
If j >= 0 And j <= 128 Then
If p = "c" Then
AnsiToUnicode = " " & AnsiToUnicode
p = "e"
End If
AnsiToUnicode = AnsiToUnicode & c
Else
If p = "e" Then
AnsiToUnicode = AnsiToUnicode & " "
p = "c"
End If
AnsiToUnicode = AnsiToUnicode & ("&#" & j & ";")
End If
Next
End Function
Rem 字zi符fu转zhuan化hua
Private Function strAnsi2Unicode(asContents)
Dim len1,i,varchar,varasc
strAnsi2Unicode = ""
len1=LenB(asContents)
If len1=0 Then Exit Function
For i=1 to len1
varchar=MidB(asContents,i,1)
varasc=AscB(varchar)
If varasc > 127 Then
If MidB(asContents,i+1,1)<>"" Then
strAnsi2Unicode = strAnsi2Unicode & chr(ascw(midb(asContents,i+1,1) & varchar))
End If
i=i+1
Else
strAnsi2Unicode = strAnsi2Unicode & Chr(varasc)
End If
Next
End Function
Rem 往wang文wen件jian中zhong追zhui加jia字zi符fu
Private Sub WriteStringToFile(filename,str)
On Error Resume Next
Dim fs,ts
Set fs= createobject("script_ing.filesystemobject")
If Not IsObject(fs) Then Exit Sub
Set ts=fs.OpenTextFile(Server.MapPath(filename),8,True)
ts.writeline(str)
ts.close
Set ts=Nothing
Set fs=Nothing
End Sub
'私si有you过guo程cheng、方fang法fa结jie束shu--------------------------
'公gong共gong方fang法fa开kai始shi--www.devdao.com------------------------
'''''''''''发fa送songxml部bu分fen开kai始shi
Rem 从cong外wai部buxml文wen件jian填tian充chongXmlDoc对dui象xiang
Public Sub LoadXmlFromFile(path)
XmlPath = Server.MapPath(path)
LoadXmlData()
End Sub
Rem 用yong字zi符fu串chuan填tian充chongXmlDoc对dui象xiang
Public Sub LoadXmlFromString(str)
XmlDoc.LoadXml str
End Sub
Rem 设she置zhinode的de参shen数shu 如ru NodeValue "appID",AppID,1,False
'--------------------------------------------------
'参shen数shu :
'NodeName 节jie点dian名ming
'NodeText 值zhi
'NodeType 保bao存cun类lei型xing [text=0,cdata=1]
'blnEncode 是shi否fou编bian码ma [true,false]
'--------------------------------------------------
Public Sub NodeValue(Byval NodeName,Byval NodeText,Byval NodeType ,Byval blnEncode)
Dim ChildNode,CreateCDATASection
NodeName = Lcase(NodeName)
If XmlDoc.documentElement.selectSingleNode(NodeName) is nothing Then
Set ChildNode = XmlDoc.documentElement.appendChild(XmlDoc.createNode(1,NodeName,""))
Else
Set ChildNode = XmlDoc.documentElement.selectSingleNode(NodeName)
End If
If blnEncode = True Then
NodeText = AnsiToUnicode(NodeText)
End If
If NodeType = 1 Then
ChildNode.Text = ""
Set CreateCDATASection = XmlDoc.createCDATASection(Replace(NodeText,"]]>","]]&gt;"))
ChildNode.appendChild(createCDATASection)
Else
ChildNode.Text = NodeText
End If
End Sub
'--------------------------------------------------
'获huo取qu发fa送song包baoXML中zhong节jie点dian的de值zhi
'参shen数shu :
'Str 节jie点dian名ming
'--------------------------------------------------
Public Property Get XmlNode(Byval Str)
If XmlDoc.documentElement.selectSingleNode(Str) is Nothing Then
XmlNode = "Null"
Else
XmlNode = XmlDoc.documentElement.selectSingleNode(Str).text
End If
End Property
'--------------------------------------------------
'获huo取qu返fan回huiXML数shu据ju对dui象xiang
'例li:
'当dangGetXmlData不bu为weiNULL时shi,GetXmlData为weiXML对dui象xiang
'--------------------------------------------------
Public Property Get GetXmlData()
Set GetXmlData = m_GetXmlDoc
End Property
'--------------------------------------------------
'发fa送songxml包bao
'--------------------------------------------------
Public Sub SendHttpData()
Dim i,GetXmlDoc,LoadAppid
Set Xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")
Set GetXmlDoc = Server.CreateObject("msxml2.FreeThreadedDOMDocument.3.0") ' 返fan回huixml包bao
XmlHttp.Open "POST", m_url, false
XmlHttp.SetRequestHeader "content-type", "text/xml"
XmlHttp.Send XmlDoc
'Response.Write strAnsi2Unicode(xmlhttp.responseBody)
If GetXmlDoc.load(XmlHttp.responseXML) Then
Set m_GetXmlDoc = GetXmlDoc
Else
MessageCode = "请qing求qiu数shu据ju错cuo误wu!"
Exit Sub
End If
Set GetXmlDoc = Nothing
Set XmlHttp = Nothing
End Sub
'--------------------------------------------------
'打da印yin发fa送song请qing求qiuXML数shu据ju
'--------------------------------------------------
Public Sub PrintSendXmlData()
Response.Clear
Response.ContentType = "text/xml"
Response.CharSet = "gb2312"
Response.Expires = 0
Response.Write "<?xml version=""1.0"" encoding=""gb2312""?>"&vbNewLine
Response.Write XmlDoc.documentElement.XML
End Sub
'--------------------------------------------------
'打da印yin返fan回huiXML数shu据ju
'--------------------------------------------------
Public Sub PrintGetXmlData()
Response.Clear
Response.ContentType = "text/xml"
Response.CharSet = "gb2312"
Response.Expires = 0
If IsObject(m_GetXmlDoc) Then
Response.Write "<?xml version=""1.0"" encoding=""gb2312""?>"&vbNewLine
Response.Write m_GetXmlDoc.documentElement.XML
Else
Response.Write "<?xml version=""1.0"" encoding=""gb2312""?><root></root>"
End If
End Sub
Rem 保bao存cun发fa送song请qing求qiuxml数shu据ju到dao文wen件jian,文wen件jian名ming为weisendxml_日ri期qi.txt
Public Sub SaveSendXmlDataToFile()
Dim filename,str
filename = "sendxml_" & DateValue(now) & ".txt"
str = ""
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 filename,str
End Sub
Rem 保bao存cun返fan回huiXML数shu据ju到dao文wen件jian,文wen件jian名ming为weigetxml_日ri期qi.txt
Public Sub SaveGetXmlDataToFile()
Dim filename,str
filename = "getxml_" & DateValue(now) & ".txt"
str = ""
str = str & ""& Now() & vbNewLine
str = str & "---------------------------------------------"& vbNewLine
If IsObject(m_GetXmlDoc) Then
str = str & "<?xml version=""1.0"" encoding=""gb2312""?>" & vbNewLine
str = str & m_GetXmlDoc.documentElement.XML
Else
str = str & "<?xml version=""1.0"" encoding=""gb2312""?>" & vbNewLine & "<root>" & vbNewLine & "</root>"
End If
str = str & vbNewLine
str = str & "---------------------------------------------"& vbNewLine
str = str & vbNewLine & vbNewLine & vbNewLine
WriteStringToFile filename,str
End Sub
'--------------------------------------------------
'获huo取qu返fan回huixml的de节jie点dian信xin息xi
'XmlClassObj.GetSingleNode("//msg")
'--------------------------------------------------
Public Function GetSingleNode(nodestring)
If IsObject(m_GetXmlDoc) Then
GetSingleNode = m_GetXmlDoc.documentElement.selectSingleNode(nodestring).text
Else
GetSingleNode = ""
End If
End Function
''''''''''''''''''发fa送songxml部bu分fen结jie束shu
''''''''''''''''''接jie收shouxml部bu分fen开kai始shi
'--------------------------------------------------
'接jie收shouXML包bao,错cuo误wu信xin息xi通tong过guoMessage对dui象xiang获huo取qu
'--------------------------------------------------
Public Function AcceptHttpData()
Dim XMLdom
Set XMLdom = Server.CreateObject("Microsoft.XMLDOM")
XMLdom.Async = False
XMLdom.Load(Request)
If XMLdom.parseError.errorCode <> 0 Then
MessageCode = "不bu能neng正zheng确que接jie收shou数shu据ju" & "Descript_ion: " & XMLdom.parseError.reason & "<br>Line: " & XMLdom.parseError.Line
Set m_XmlDocAccept = Null
Else
Set m_XmlDocAccept = XMLdom
End If
End Function
'--------------------------------------------------
'返fan回hui接jie收shouXML包bao节jie点dian信xin息xi
'XmlClassObj.GetSingleNode("//msg")
'--------------------------------------------------
Public Function AcceptSingleNode(nodestring)
If IsObject(m_XmlDocAccept) Then
AcceptSingleNode = m_XmlDocAccept.documentElement.selectSingleNode(nodestring).text
Else
AcceptSingleNode = ""
End If
End Function
'--------------------------------------------------
'打da印yin接jie收shou端duan接jie收shou到dao的deXML数shu据ju
'--------------------------------------------------
Public Sub PrintAcceptXmlData()
Response.Clear
Response.ContentType = "text/xml"
Response.CharSet = "gb2312"
Response.Expires = 0
If IsObject(m_XmlDocAccept) Then
Response.Write "<?xml version=""1.0"" encoding=""gb2312""?>"&vbNewLine
Response.Write m_XmlDocAccept.documentElement.XML
Else
Response.Write "<?xml version=""1.0"" encoding=""gb2312""?><root></root>"
End If
End Sub
Rem 保bao存cun接jie收shou的deXML包bao数shu据ju到dao文wen件jian,文wen件jian名ming为weiacceptxml_日ri期qi.txt
Public Sub SaveAcceptXmlDataToFile()
Dim filename,str
filename = "acceptxml_" & DateValue(now) & ".txt"
str = ""
str = str & ""& Now() & vbNewLine
str = str & "---------------------------------------------"& vbNewLine
If IsObject(m_XmlDocAccept) Then
str = str & "<?xml version=""1.0"" encoding=""gb2312""?>" & vbNewLine
str = str & m_XmlDocAccept.documentElement.XML
Else
str = str & "<?xml version=""1.0"" encoding=""gb2312""?>" & vbNewLine & "<root>" & vbNewLine & "</root>"
End If
str = str & vbNewLine
str = str & "---------------------------------------------"& vbNewLine
str = str & vbNewLine & vbNewLine & vbNewLine
WriteStringToFile filename,str
End Sub
''''''''''''''''''接jie收shouxml部bu分fen结jie束shu
Rem 保bao存cun调tiao试shi数shu据ju到dao文wen件jian,文wen件jian名ming为weidebugnote_日ri期qi.txt
Public Sub SaveDebugStringToFile(debugstr)
Dim filename,str
filename = "debugnote_" & DateValue(now) & ".txt"
str = ""
str = str & ""& Now() & vbNewLine
str = str & "---------------------------------------------"& vbNewLine
str = str & debugstr & vbNewLine
str = str & "---------------------------------------------"
str = str & vbNewLine & vbNewLine & vbNewLine
WriteStringToFile filename,str
End Sub
'公gong共gong方fang法fa结jie束shu--------------------------
End Class
%>
filemd5fun.asp
<!--#Include File="xmlcls.asp"-->
<%
Rem 取qu得de文wen件jian的demd5,参shen数shu为wei文wen件jian名ming
Function GetFileMD5(filename)
Const Apisysno = "k8n6g2b0m1a6b0f6e8" '接jie口kou的deKey值zhi,防fang止zhi被bei非fei法fa适shi用yong 接jie口kou应ying该gai保bao持chi一yi致zhi
Dim XmlClassObj
Set XmlClassObj = new XmlClass '创chuang建jian对dui象xiang
XmlClassObj.LoadXmlFromString("<?xml version=""1.0"" encoding=""gb2312""?><root/>") '用yongxml字zi符fu填tian充chongXMLDOC对dui象xiang,用yong来lai发fa送songxml
XmlClassObj.URL = "http://www.shouji138.com/aspnet2/FileMD5.aspx" '设she置zhi响xiang应ying的deurl,这zhe里li应ying该gai改gai成cheng你ni的de网wang址zhi
Rem xml格ge式shi
Rem "<?xml version="1.0" encoding="gb2312"?>
Rem <root>
Rem <sysno></sysno>
Rem <apiaction></apiaction>
Rem <filename></filename>
Rem </root>
XmlClassObj.NodeValue "sysno",Apisysno,0,False '接jie口kou的deKey值zhi,防fang止zhi被bei非fei法fa适shi用yong
XmlClassObj.NodeValue "apiaction","createfilemd5",0,False '接jie口kou的de响xiang应ying动dong作zuo,用yong于yu定ding义yi一yi个ge接jie口kou用yong于yu多duo种zhong用yong途tu
XmlClassObj.NodeValue "filename",filename,0,False '文wen件jian路lu径jing和he文wen件jian名ming,用yong相xiang对dui路lu径jing
'XmlClassObj.SaveSendXmlDataToFile() '将jiang发fa送song的dexml数shu据ju库ku包bao存cun入rutxt文wen件jian,用yong于yu调tiao试shi之zhi用yong
XmlClassObj.SendHttpData() '发fa送songxml数shu据ju
'XmlClassObj.SaveGetXmlDataToFile() '保bao存cun接jie收shou到dao的dexml数shu据ju
Rem 处chu理li结jie果guo
Dim message,status
status = XmlClassObj.GetSingleNode("//status") '显xian示shi状zhuang态tai,如ru果guo为weiOK则ze表biao示shi成cheng功gong,否fou则ze有you错cuo误wu发fa生sheng
message = XmlClassObj.GetSingleNode("//message") '显xian示shi取qu到dao的deMD5值zhi,如ru果guostatus不bu为weiOK,则zemessage为wei错cuo误wu信xin息xi
Set XmlClassObj = Nothing
If status = "OK" Then
GetFileMD5 = message
Else
GetFileMD5 = ""
End If
End Function
%>
test.asp
<!--#Include File="filemd5fun.asp"-->
<%
Response.Write "web.config的demd5值zhi是shi:" & GetFileMD5("web.config") & "<br />"
Response.Write "files/logo-yy.gif的demd5值zhi是shi:" & GetFileMD5("files/logo-yy.gif") & "<br />"
Response.Write "xmlcls.asp的demd5值zhi是shi:" & GetFileMD5("xmlcls.asp") & "<br />"
%>
.net端duan代dai码ma:
MD5.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace Winsteps.FileMD5
{
public class MD5
{
public static string md5_hash(string path)
{
try
{
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);
string resule = System.BitConverter.ToString(hash_byte);
resule = resule.Replace("-", "");
return resule;
}
catch (Exception e)
{
return e.Message;
}
}
}
}
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" >
<head runat="server">
<title>手shou机ji主zhu题ti网wang:http://www.shouji138.com</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
FileMD5.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.Configuration;
namespace Winsteps.FileMD5
{
public partial class FileMD5 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string sysno = "11111";
string status = "False";
string message = "未wei指zhi定ding的de错cuo误wu";
string net2sysno = ConfigurationManager.AppSettings["sysno"];
XmlDocument doc = new XmlDocument();
try
{
doc.Load(Request.InputStream);
sysno = doc.SelectSingleNode("//sysno").InnerText.Trim();
if (net2sysno != sysno)
{
message = "非fei法fa适shi用yong!";
}
else
{
string filename = Server.MapPath(doc.SelectSingleNode("//filename").InnerText.Trim());
message = MD5.md5_hash(filename);
status = "OK";
}
}
catch(Exception ex)
{
message = ex.Message;
}
finally
{
if (doc != null)
doc = null;
}
Response.Clear(); //清qing楚chuhtml字zi符fu
Response.ContentType = "text/xml";
Response.Charset = "GB2312";//如ru果guoxml字zi符fu串chuan中zhong包bao含han中zhong文wen
Response.Write("<?xml version=\"1.0\" encoding=\"GB2312\"?>");
Response.Write("<root>");
Response.Write(" <status>" + status + "</status>");
Response.Write(" <message>" + message + "</message>");
Response.Write("</root>");
Response.End();
}
}
}
Web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="sysno" value="k8n6g2b0m1a6b0f6e8"></add>
</appSettings>
<system.web>
<httpRuntime executionTimeout="3600" maxRequestLength="1048576"/>
<compilation debug="true" defaultLanguage="c#" />
<customErrors mode="Off" />
<identity impersonate="true"/>
<authentication mode="Forms">
<forms name="forums" path="/" loginUrl="Login.aspx" protection="All" timeout="40">
</forms>
</authentication>
<pages validateRequest="false"></pages>
<globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" uiCulture="zh-CN"/>
</system.web>
</configuration>
web.config的desysno要yao跟genfilemd5fun.asp里li面mian的deApisysno保bao持chi一yi致zhi,具ju体ti应ying用yong时shi应ying该gai要yao把ba这zhe个gekey改gai成cheng你ni自zi己ji的de值zhi来lai保bao证zheng安an全quan。
演yan示shi地di址zhi:http://www.shouji138.com/aspnet2/filemd5.asp
代dai码ma虽sui然ran长chang,但dan是shi原yuan理li简jian单dan,asp发fa送songxml数shu据ju给geiasp.net(xml中zhong包bao含han了le要yaomd5的de文wen件jian名ming)->asp.net接jie收shouxml对dui文wen件jian进jin行xingmd5->asp.net将jiang结jie果guo通tong过guoxml返fan回hui给geiasp(xml中zhong包bao含han了le获huo取qu到dao的demd5值zhi)->asp获huo取qu返fan回hui的dexml,解jie析xi出chumd5值zhi。
应ying用yong范fan围wei:
1. 在zai两liang个ge系xi统tong之zhi间jian传chuan送song文wen件jian时shi,可ke以yi在zai传chuan送song前qian进jin行xing文wen件jianmd5,传chuan送song后hou进jin行xing文wen件jianmd5,检jian查cha两liang值zhi是shi否fou相xiang等deng,如ru果guo相xiang等deng则ze表biao示shi在zai传chuan送song过guo程cheng中zhong没mei有you被bei修xiu改gai。
2. 做zuo上shang传chuan系xi统tong中zhong,如ru果guo要yao求qiu不bu能neng上shang传chuan同tong文wen件jian的de话hua,可ke以yi在zai上shang传chuan之zhi后hou的de文wen件jian进jin行xingmd5存cun入ru数shu据ju库ku中zhong,这zhe样yang下xia次ci上shang传chuan同tong样yang文wen件jian,则zemd5会hui相xiang同tong,拒ju绝jue上shang传chuan。
3. 在zai搜sou索suo引yin擎qing、迅xun雷lei本benb2b软ruan件jian中zhong,对dui文wen件jianmd5,具ju有you相xiang同tongmd5的de文wen件jian被bei认ren为wei是shi相xiang同tong文wen件jian,而er不bu管guan文wen件jian名ming是shi否fou相xiang同tong,可ke以yi从cong多duo个ge源yuan来lai分fen享xiang文wen件jian。
4. 其qi他ta应ying用yong。。。。。
二er、asp通tong过guoCOM组zu件jian实shi现xianmd5(需xu要yao在zai服fu务wu器qi上shang注zhu册ce组zu件jian)
注zhu册ce一yi个geasp的de文wen件jianmd5组zu件jian,下xia载zai地di址zhi:http://www.shouji138.com/aspnet2/files/aspmd5.rar
然ran后hou将jiangPARmf.dll文wen件jian拷kao贝bei到dao服fu务wu器qi的dec:\WINDOWS\system32目mu录lu,运yun行xingregsvr32 parmf.dll进jin行xing注zhu册ce,重chong启qiIIS。
调tiao用yong代dai码ma:
<%
Set DelphiASPObj = Server.CreateObject("PARmf.md5file")
DelphiASPObj.in_path=Server.Mappath("Web.config") '文wen件jian路lu径jing
Response.Write "web.config的demd5值zhi是shi:" & DelphiASPObj.get_path_md5 & "<br />"
Set DelphiASPObj=nothing
%>
三san、两liang种zhong方fang式shi获huo取qu文wen件jianmd5的de对dui比bi
第di一yi种zhong方fang法fa通tong过guo与yuasp.net程cheng序xu交jiao互huxml数shu据ju来lai得de到dao文wen件jian的demd5,需xu要yao服fu务wu器qi支zhi持chiasp.net,一yi般ban的de虚xu拟ni主zhu机ji都dou提ti供gongasp.net环huan境jing,但dan是shi价jia格ge高gao点dian;
第di二er种zhong方fang法fa通tong过guo注zhu册ceCOM组zu件jian实shi现xian,需xu要yao有you服fu务wu器qi的de权quan限xian,对dui于yu拥yong有you服fu务wu器qi的de比bi较jiao合he适shi。
另ling外wai第di一yi种zhong方fang式shi的de这zhe种zhong交jiao互hu方fang法fa使shi得deasp具ju有you更geng大da的de灵ling活huo性xing,可ke以yi应ying用yong在zai2台tai不bu同tong的de服fu务wu器qi上shang面mian进jin行xing数shu据ju交jiao互hu,可ke广guang泛fan应ying用yong于yu各ge种zhong异yi构gou平ping台tai。
四si、下xia载zai地di址zhi
请qing到dao偶ou的de小xiao站zhan,手shou机ji主zhu题ti网wang查cha看kan演yan示shi和he下xia载zai程cheng序xu包bao
演yan示shi地di址zhi:http://www.shouji138.com/aspnet2/filemd5.asp
程cheng序xu下xia载zai打da包bao下xia载zai:http://www.shouji138.com/aspnet2/files/FileMD5.rar
asp的de文wen件jianmd5组zu件jian:http://www.shouji138.com/aspnet2/files/aspmd5.rar
【原文】