Hay muchos MD5 para caracteres cifrados ASP en Internet y son muy comunes, pero el MD5 para archivos es muy raro debido a las limitaciones del propio lenguaje ASP. Sabemos que md5 de una cadena puede cifrar irreversiblemente texto sin formato para garantizar la seguridad del almacenamiento o la transmisión de datos. De manera similar, el cifrado de archivos md5 también se utiliza para garantizar que no se modifiquen ni se verifiquen durante la transmisión de la red. Otro uso es en sitios personales: puede garantizar que las imágenes o archivos cargados sean únicos. El principio es que después de cargarlo en el servidor, el valor md5 del archivo cargado se registra en la base de datos al mismo tiempo. De esta manera, la próxima vez que se cargue el mismo archivo, podremos consultar la base de datos para ver si es así. el mismo archivo, si el valor md5 es el mismo, consideraremos que es el mismo. Para los archivos, el valor md5 es la "tarjeta de identificación" del archivo. Para imágenes en Baidu y al hacer clic en la imagen, a veces "También puede hacer clic en el siguiente enlace para ver esta imagen: URL XXX", el principio es el mismo, el archivo md5.
Sin más preámbulos, comencemos.
1. asp llama al programa .Net a través del modo interactivo xml para implementar el archivo md5
Debido a las limitaciones de su propio lenguaje, asp no puede implementar md5 de archivos, pero .net sí puede hacerlo. ¿Es posible realizar md5 en el archivo a través de .net y luego enviar la información a asp para recibirla? ¿Se puede lograr el md5 de ASP? Respuesta Eso es seguro. Esto implica la interacción entre programas ASP y .NET. He escrito una clase ASP antes: "Clases de envío y recepción de datos XML de procesamiento ASP". Puede verla en mi espacio Baidu: http://hi.baidu.com/manbutianmi. /blog/item/dec182fc6db36587b801a0f6.html trata sobre el procesamiento asp del envío y recepción de datos xml, y puede usarse para la comunicación entre interfaces API entre varios sistemas heterogéneos. Este artículo resulta ser una aplicación de esta clase. El código es el siguiente:
código lateral asp
xmlcls.asp
<%
Rem maneja el envío y la recepción de clases de datos xml
'------------------------------------------------ -
'Esta información de derechos de autor debe conservarse al reimprimir
'Autor: walkman
'Sitio web: Red temática móvil: http://www.shouji138.com
'Versión: ver1.0
'------------------------------------------------ -
ClaseXmlClase
Definición de variable rem
XmlDoc privado, XmlHttp
Código de mensaje privado, SysKey, XMLPath
Privado m_GetXmlDoc,m_url
privada de m_XmlDocAccept
Rem
Subclase privada_Initialize()
En caso de error Continuar siguiente
Código de mensaje = ""
RutaXml = ""
Establecer XmlDoc = Server.CreateObject("msxml2.FreeThreadedDOMDocument.3.0")
XmlDoc.ASYNC = Falso
Subtítulo final
Rem destruye el objeto.
Subclase privada_Terminate()
Si IsObject (XmlDoc) entonces establezca XmlDoc = Nada
Si IsObject(m_XmlDocAccept) entonces establezca m_XmlDocAccept = Nada
Si IsObject(m_GetXmlDoc) entonces establezca m_GetXmlDoc = Nada
Subtítulo final
'Se inicia la definición de atributo público--------------------------
mensaje de error remoto
Mensaje de obtención de propiedad pública()
Mensaje = Código de mensaje
Propiedad final
Rem la dirección a la que enviar xml
Propiedad pública Let URL(str)
m_url = cadena
Propiedad final
'Fin de la definición de atributo público--------------------------
'Inicio de método y proceso privado--------------------------
REM cargar xml
Subcarga privadaXmlData()
Si XmlPath <> "" Entonces
Si no es XmlDoc.Load (XmlPath) entonces
XmlDoc.LoadXml "<?xml versión=""1.0"" codificación=""gb2312""?><raíz/>"
Terminar si
Demás
XmlDoc.LoadXml "<?xml versión=""1.0"" codificación=""gb2312""?><raíz/>"
Terminar si
Finalizar
la conversión de caracteres Sub Rem
Función privada AnsiToUnicode (ByVal str)
Dim i, j, c, i1, i2, u, fs, f, p
AnsiToUnicode = ""
pag = ""
Para i = 1 a Len(str)
c = Medio(cadena, i, 1)
j = AscW(c)
Si j < 0 Entonces
j = j + 65536
Terminar si
Si j >= 0 y j <= 128 Entonces
Si p = "c" Entonces
AnsiToUnicode = " " & AnsiToUnicode
pag = "e"
Terminar si
AnsiToUnicode = AnsiToUnicode &c
Demás
Si p = "e" Entonces
AnsiToUnicode = AnsiToUnicode & " "
pag = "c"
Terminar si
AnsiToUnicode = AnsiToUnicode & ("&#" & j & ";")
Terminar si
Próximo
Función final
Conversión de caracteres Rem
Función privada strAnsi2Unicode (asContents)
Dim len1,i,varchar,varasc
strAnsi2Unicode = ""
len1=LenB(comoContenido)
Si len1 = 0, entonces salga de la función
Para i=1 a len1
varchar=MidB(comoContenido,i,1)
varasc=AscB(varchar)
Si varasc > 127 Entonces
Si MidB(asContents,i+1,1)<>"" Entonces
strAnsi2Unicode = strAnsi2Unicode & chr(ascw(midb(asContents,i+1,1) & varchar))
Terminar si
yo=yo+1
Demás
strAnsi2Unicode = strAnsi2Unicode y Chr(varasc)
Terminar si
Próximo
Función final
Rem agrega caracteres al archivo
Sub privado WriteStringToFile (nombre de archivo, cadena)
En caso de error Continuar siguiente
fs,ts tenues
Establecer fs= createobject("script_ing.filesystemobject")
Si no es IsObject(fs), entonces salga de Sub
Establecer ts=fs.OpenTextFile(Server.MapPath(nombre de archivo),8,True)
ts.writeline(cadena)
ts.cerrar
Establecer ts=Nada
Establecer fs=Nada
Subtítulo final
'Fin del método y proceso privado--------------------------
'Se inicia el método público--www.devdao.com------------------------
''''''''''' Envía la parte xml para comenzar
Rem rellena el objeto XmlDoc desde un archivo xml externo
Public Sub LoadXmlFromFile (ruta)
XmlPath = Servidor.MapPath(ruta)
CargarXmlData()
Subtítulo final
Rem llena el objeto XmlDoc con una cadena
Subcarga públicaXmlFromString(str)
XmlDoc.LoadXml cadena
Subtítulo final
Rem establece parámetros de nodo como NodeValue "appID",AppID,1,False
'------------------------------------------------ -
'parámetro:
'NodeName nombre de nodo
'Valor de texto de nodo
'Tipo de guardado NodeType [texto=0,cdata=1]
'blnEncode si se codifica [verdadero, falso]
'------------------------------------------------ -
Valor de subnodo público (nombre de nodo de Byval, texto de nodo de Byval, tipo de nodo de Byval, código bln de Byval)
Dim ChildNode, Crear sección CDATA
Nombre de nodo = Lcase(Nombre de nodo)
Si XmlDoc.documentElement.selectSingleNode(NodeName) no es nada, entonces
Establecer ChildNode = XmlDoc.documentElement.appendChild(XmlDoc.createNode(1,NodeName,""))
Demás
Establecer ChildNode = XmlDoc.documentElement.selectSingleNode(NombreNodo)
Terminar si
Si blnEncode = Verdadero Entonces
NodoTexto = AnsiToUnicode(NodoTexto)
Terminar si
Si tipo de nodo = 1 entonces
ChildNode.Text = ""
Establecer CreateCDATASection = XmlDoc.createCDATASection(Replace(NodeText,"]]>","]]>"))
ChildNode.appendChild(crearCDATASection)
Demás
ChildNode.Text = Texto de nodo
Terminar si
Subtítulo final
'------------------------------------------------ -
'Obtener el valor del nodo en el paquete XML enviado
'parámetro:
'Nombre del nodo str
'------------------------------------------------ -
Propiedad pública GetXmlNode(ByvalStr)
Si XmlDoc.documentElement.selectSingleNode(Str) no es nada, entonces
XmlNode = "Nulo"
Demás
XmlNode = XmlDoc.documentElement.selectSingleNode(Str).text
Terminar si
Propiedad final
'----------------------------------------------- -- ---
'Obtener el objeto de datos XML devuelto
'ejemplo:
'Cuando GetXmlData no es NULL, GetXmlData es un objeto XML
'------------------------------------------------ -
Propiedad pública Obtener GetXmlData()
Establecer GetXmlData = m_GetXmlDoc
Propiedad final
'------------------------------------------------ -
'Enviar paquete xml
'------------------------------------------------ -
Sub público SendHttpData()
Atenuar i,GetXmlDoc,LoadAppid
Establecer Xmlhttp = Server.CreateObject ("MSXML2.ServerXMLHTTP.3.0")
Establecer GetXmlDoc = Server.CreateObject("msxml2.FreeThreadedDOMDocument.3.0") ' Devolver paquete xml
XmlHttp.Abrir "POST", m_url, falso
XmlHttp.SetRequestHeader "tipo de contenido", "texto/xml"
XmlHttp.Enviar XmlDoc
'Respuesta.Escribir strAnsi2Unicode(xmlhttp.responseBody)
Si GetXmlDoc.load (XmlHttp.responseXML) Entonces
Establecer m_GetXmlDoc = GetXmlDoc
Demás
MessageCode = "¡Error al solicitar datos!"
Salir Sub
Terminar si
Establecer GetXmlDoc = Nada
Establecer XmlHttp = Nada
Subtítulo final
'------------------------------------------------ -
'Imprimir datos XML de solicitud de envío
'------------------------------------------------ -
Sub público PrintSendXmlData()
Respuesta.Borrar
Respuesta.ContentType = "texto/xml"
Respuesta.CharSet = "gb2312"
Respuesta.Expira = 0
Respuesta.Escribir "<?xml version=""1.0"" codificación=""gb2312""?>"&vbNewLine
Respuesta.Escribir XmlDoc.documentElement.XML
Subtítulo final
'------------------------------------------------ -
'Imprimir datos XML devueltos
'------------------------------------------------ -
Subimpresión públicaGetXmlData()
Respuesta.Borrar
Respuesta.ContentType = "texto/xml"
Respuesta.CharSet = "gb2312"
Respuesta.Expira = 0
Si IsObject (m_GetXmlDoc) entonces
Respuesta.Escribir "<?xml version=""1.0"" codificación=""gb2312""?>"&vbNewLine
Respuesta.Escribir m_GetXmlDoc.documentElement.XML
Demás
Respuesta.Escribir "<?xml version=""1.0"" codificación=""gb2312""?><root></root>"
Terminar si
Subtítulo final
Rem guarda los datos xml de la solicitud de envío en un archivo llamado sendxml_date.txt
Sub público SaveSendXmlDataToFile()
nombre de archivo tenue, str
nombre de archivo = "sendxml_" & DateValue(ahora) & ".txt"
cadena = ""
cadena = cadena & ""& Ahora() & vbNewLine
cadena = cadena & "----------------------------------------------------- --- "& vbNuevaLínea
str = str & "<?xml versión=""1.0"" codificación=""gb2312""?>" & vbNewLine
cadena = cadena & XmlDoc.documentElement.XML & vbNewLine
cadena = cadena & "----------------------------------------------------- --- "& vbNuevaLínea
cadena = cadena & vbNuevaLínea & vbNuevaLínea & vbNuevaLínea
WriteStringToFile nombre de archivo, str
Subtítulo final
Rem guarda los datos XML devueltos en un archivo llamado getxml_date.txt
Sub público SaveGetXmlDataToFile()
nombre de archivo tenue, str
nombre de archivo = "getxml_" & DateValue(ahora) & ".txt"
cadena = ""
cadena = cadena & ""& Ahora() & vbNewLine
cadena = cadena & "----------------------------------------------------- --- "& vbNuevaLínea
Si IsObject (m_GetXmlDoc) entonces
str = str & "<?xml versión=""1.0"" codificación=""gb2312""?>" & vbNewLine
cadena = cadena & m_GetXmlDoc.documentElement.XML
Demás
str = str & "<?xml version=""1.0"" codificación=""gb2312""?>" & vbNewLine & "<root>" & vbNewLine & "</root>"
Terminar si
cadena = cadena y vbNuevaLínea
cadena = cadena & "----------------------------------------------------- --- "& vbNuevaLínea
cadena = cadena & vbNuevaLínea & vbNuevaLínea & vbNuevaLínea
WriteStringToFile nombre de archivo, str
Subtítulo final
'------------------------------------------------ -
'Obtiene la información del nodo del xml devuelto
'XmlClassObj.GetSingleNode("//msg")
'------------------------------------------------ -
Función pública GetSingleNode (cadena de nodos)
Si IsObject (m_GetXmlDoc) entonces
GetSingleNode = m_GetXmlDoc.documentElement.selectSingleNode(nodestring).text
Demás
GetSingleNode = ""
Terminar si
Función final
''''''''''''''''''Fin del envío de la parte xml
''''''''''''''''''La parte xml de recepción comienza
'------------------------------------------------ -
'Recibimos paquete XML, la información del error se obtiene a través del objeto Mensaje
'------------------------------------------------ -
Función pública AcceptHttpData()
XMLdom tenue
Establecer XMLdom = Server.CreateObject ("Microsoft.XMLDOM")
XMLdom.Async = Falso
XMLdom.Cargar (Solicitud)
Si XMLdom.parseError.errorCode <> 0 Entonces
MessageCode = "No se pueden recibir datos correctamente" & "Descript_ion: " & XMLdom.parseError.reason & "<br>Line: " & XMLdom.parseError.Line
Establecer m_XmlDocAccept = Nulo
Demás
Establecer m_XmlDocAccept = XMLdom
Terminar si
Función final
'----------------------------------------------- -- ---
'Volver para recibir información del nodo del paquete XML
'XmlClassObj.GetSingleNode("//msg")
'------------------------------------------------ -
Función pública AcceptSingleNode (cadena de nodos)
Si IsObject (m_XmlDocAccept) Entonces
AcceptSingleNode = m_XmlDocAccept.documentElement.selectSingleNode(nodestring).text
Demás
AceptarNodoÚnico = ""
Terminar si
Función final
'------------------------------------------------ -
'Imprime los datos XML recibidos por el extremo receptor
'------------------------------------------------ -
Sub público PrintAcceptXmlData()
Respuesta.Borrar
Respuesta.ContentType = "texto/xml"
Respuesta.CharSet = "gb2312"
Respuesta.Expira = 0
Si IsObject (m_XmlDocAccept) entonces
Respuesta.Escribir "<?xml version=""1.0"" codificación=""gb2312""?>"&vbNewLine
Respuesta.Escribir m_XmlDocAccept.documentElement.XML
Demás
Respuesta.Escribir "<?xml version=""1.0"" codificación=""gb2312""?><root></root>"
Terminar si
Subtítulo final
Rem guarda los datos del paquete XML recibido en un archivo llamado aceptarxml_date.txt
Sub público SaveAcceptXmlDataToFile()
nombre de archivo tenue, str
nombre de archivo = "acceptxml_" & DateValue(ahora) & ".txt"
cadena = ""
cadena = cadena & ""& Ahora() & vbNewLine
cadena = cadena & "----------------------------------------------------- --- "& vbNuevaLínea
Si IsObject (m_XmlDocAccept) entonces
str = str & "<?xml versión=""1.0"" codificación=""gb2312""?>" & vbNewLine
cadena = cadena & m_XmlDocAccept.documentElement.XML
Demás
str = str & "<?xml version=""1.0"" codificación=""gb2312""?>" & vbNewLine & "<root>" & vbNewLine & "</root>"
Terminar si
cadena = cadena y vbNuevaLínea
cadena = cadena & "----------------------------------------------------- --- "& vbNuevaLínea
cadena = cadena & vbNuevaLínea & vbNuevaLínea & vbNuevaLínea
WriteStringToFile nombre de archivo, str
Subtítulo final
''''''''''''''''''Reciba la parte xml y finalice
Rem. Guarde los datos de depuración en un archivo llamado debugnote_date.txt.
Sub público SaveDebugStringToFile (debugstr)
nombre de archivo tenue, str
nombre de archivo = "debugnote_" & DateValue(ahora) & ".txt"
cadena = ""
cadena = cadena & ""& Ahora() & vbNewLine
cadena = cadena & "----------------------------------------------------- --- "& vbNuevaLínea
str = str & debugstr & vbNewLine
cadena = cadena & "----------------------------------------------------- --- "
cadena = cadena & vbNuevaLínea & vbNuevaLínea & vbNuevaLínea
WriteStringToFile nombre de archivo, str
End Sub
'El método público finaliza--------------------------
Fin de clase
%>
filemd5fun.asp
<!--#Include File="xmlcls.asp"-->
<%
Rem obtiene el md5 del archivo, el parámetro es el nombre del archivo
Función GetFileMD5(nombre de archivo)
Const Apisysno = "k8n6g2b0m1a6b0f6e8" 'El valor clave de la interfaz debe ser coherente para evitar la aplicación ilegal de la interfaz
DimXmlClassObj
Establecer XmlClassObj = new XmlClass 'Crear objeto
XmlClassObj.LoadXmlFromString("<?xml version=""1.0"" encoding=""gb2312""?><root/>") 'Rellene el objeto XMLDOC con caracteres xml y utilícelo para enviar xml
XmlClassObj.URL = " http://www.shouji138.com/aspnet2/FileMD5.aspx " 'Establezca la URL de respuesta, que debe cambiarse a su URL
formato xml remoto
Rem "<?xml versión="1.0" codificación="gb2312"?>
Rem <raíz>
Rem <sysno></sysno>
Rem <apiaction></apiaction>
Rem <nombre de archivo></nombre de archivo>
rem</root>
XmlClassObj.NodeValue "sysno",Apisysno,0,False 'Valor clave de la interfaz para evitar aplicaciones ilegales
XmlClassObj.NodeValue "apiaction","createfilemd5",0,False 'Acción de respuesta de la interfaz, utilizada para definir una interfaz para múltiples propósitos
XmlClassObj.NodeValue "filename",filename,0,False 'Ruta de archivo y nombre de archivo, use la ruta relativa'XmlClassObj.SaveSendXmlDataToFile
() 'Guarde el paquete de base de datos xml enviado en un archivo txt para fines de depuración
XmlClassObj.SendHttpData() 'Enviar datos xml
'XmlClassObj.SaveGetXmlDataToFile() 'Guarda los datos xml recibidos
Resultado del procesamiento remoto
Mensaje tenue, estado
status = XmlClassObj.GetSingleNode("//status") 'Mostrar estado, si está bien, significa éxito; de lo contrario, se produce un error
message = XmlClassObj.GetSingleNode("//message") 'Muestra el valor MD5 obtenido. Si el estado no es OK, el mensaje es un mensaje de error.
Establecer XmlClassObj = Nada
si estado = "OK" Entonces
GetFileMD5 = mensaje
Demás
GetFileMD5 = ""
Terminar si
Función final
%>
test.asp
<!--#Incluir archivo="filemd5fun.asp"-->
<%
Response.Write "El valor md5 de web.config es:" & GetFileMD5("web.config") & "<br />"
Response.Write "El valor md5 de files/logo-yy.gif es:" & GetFileMD5("files/logo-yy.gif") & "<br />"
Response.Write "El valor md5 de xmlcls.asp es:" & GetFileMD5("xmlcls.asp") & "<br />"
%>
Código lateral .net:
MD5.cs
usando Sistema;
usando System.Collections.Generic;
usando System.Text;
usando System.IO;
espacio de nombres Winsteps.FileMD5;
{
clase pública MD5
{
cadena estática pública md5_hash (ruta de cadena)
{
intentar
{
FileStream get_file = nuevo FileStream (ruta, FileMode.Open, FileAccess.Read, FileShare.Read);
System.Security.Cryptography.MD5CryptoServiceProvider get_md5 = nuevo System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] hash_byte = get_md5.ComputeHash(get_file);
resultado de cadena = System.BitConverter.ToString(hash_byte);
resule = resule.Replace("-", "");
resultado de devolución;
}
captura (Excepción e)
{
devolver mensaje electrónico;
}
}
}
}
FileMD5.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FileMD5.aspx.cs" Inherits="Winsteps.FileMD5.FileMD5" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transicional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml " >
<head runat="servidor">
<title>Sitio web de temas móviles: http://www.shouji138.com</title>
</cabeza>
<cuerpo>
<formulario id="form1" runat="servidor">
<div>
</div>
</formulario>
</cuerpo>
</html>
FileMD5.aspx.cs
usando Sistema;
usando System.Data;
usando System.Configuration;
usando System.Collections;
usando System.Web;
utilizando System.Web.Security;
utilizando System.Web.UI;
usando System.Web.UI.WebControls;
usando System.Web.UI.WebControls.WebParts;
usando System.Web.UI.HtmlControls;
usando System.Xml;
usando
el espacio de nombres System.Configuration Winsteps.FileMD5
;
{
clase parcial pública FileMD5: System.Web.UI.Page
{
Page_Load vacío protegido (remitente del objeto, EventArgs e)
{
cadena sysno = "11111";
estado de cadena = "Falso";
mensaje de cadena = "Error no especificado";
cadena net2sysno = ConfigurationManager.AppSettings["sysno"];
Documento XmlDocument = nuevo XmlDocument();
intentar
{
doc.Load(Request.InputStream);
sysno = doc.SelectSingleNode("//sysno").InnerText.Trim();
si (net2sysno! = sysno)
{
mensaje = "¡Solicitud ilegal!";
}
demás
{
nombre de archivo de cadena = Server.MapPath(doc.SelectSingleNode("//nombre de archivo").InnerText.Trim());
mensaje = MD5.md5_hash(nombre de archivo);
estado = "OK";
}
}
captura (Excepción ex)
{
mensaje = ex.Mensaje;
}
finalmente
{
si (doc! = nulo)
documento = nulo;
}
Response.Clear(); //Borrar caracteres html
Respuesta.ContentType = "texto/xml";
Response.Charset = "GB2312";//Si la cadena xml contiene chino
Response.Write("<?xml version="1.0" codificación="GB2312"?>");
Response.Write("<raíz>");
Response.Write(" <estado>" + estado + "</status>");
Response.Write(" <mensaje>" + mensaje + "</message>");
Respuesta.Write("</root>");
Respuesta.Fin();
}
}
}
Web.config
<?xml versión="1.0" codificación="utf-8"?>
<configuración>
<configuración de la aplicación>
<agregar clave="sysno" valor="k8n6g2b0m1a6b0f6e8"></add>
</aplicaciónConfiguración>
<sistema.web>
<httpEjecución en tiempo de ejecuciónTimeout="3600" maxRequestLength="1048576"/>
<compilación debug="true" defaultLanguage="c#" />
<modo de errores personalizados="Desactivado" />
<identidad suplantar="verdadero"/>
<modo de autenticación="Formularios">
<formularios nombre="foros" ruta="/" loginUrl="Login.aspx" protección="Todos" tiempo de espera="40">
</formularios>
</autenticación>
<páginas validarRequest="false"></páginas>
<solicitud de globalizaciónEncoding="gb2312" respuestaEncoding="gb2312" culture="zh-CN" uiCulture="zh-CN"/>
</sistema.web>
</configuración>
El sysno de web.config debe ser coherente con el Apisysno en filemd5fun.asp. Durante una aplicación específica, debe cambiar esta clave a su propio valor para garantizar la seguridad.
Dirección de demostración: http://www.shouji138.com/aspnet2/filemd5.asp
Aunque el código es largo, el principio es simple. ASP envía datos xml a asp.net (el xml contiene el nombre del archivo como md5) -> asp.net recibe el xml y ejecuta md5 en el archivo -> asp.net devuelve. el resultado a asp a través de xml (El xml contiene el valor md5 obtenido) -> asp obtiene el xml devuelto y analiza el valor md5.
Ámbito de aplicación:
1. Al transferir archivos entre dos sistemas, puede ejecutar el archivo md5 antes de la transmisión y el archivo md5 después de la transmisión para verificar si los dos valores son iguales. Si son iguales, significa que no se han modificado durante el proceso de transmisión.
2. En el sistema de carga, si se requiere que no se pueda cargar el mismo archivo, el md5 del archivo cargado se puede almacenar en la base de datos. De esta manera, si se carga el mismo archivo la próxima vez, el md5 será el. lo mismo y la carga será rechazada.
3. En los motores de búsqueda y el software Xunlei b2b, para el archivo md5, los archivos con el mismo md5 se consideran el mismo archivo, independientemente de si los nombres de los archivos son los mismos, y los archivos se pueden compartir desde múltiples fuentes.
4. Otras aplicaciones. . . . .
2. asp implementa md5 a través de componentes COM (el componente debe estar registrado en el servidor)
para registrar un componente md5 de archivo asp, dirección de descarga: DelphiASPObj.in_path=Server.Mappath("Web.config") 'Ruta del archivo
Response.Write "El valor md5 de web.config es:" & DelphiASPObj.get_path_md5 & "<br />"
Establecer DelphiASPObj=nada
%>
3. Comparación de dos formas de obtener el archivo md5.
El primer método es obtener el md5 del archivo interactuando con datos xml con el programa asp.net. El servidor debe ser compatible con asp.net. entorno asp.net, pero El precio es más alto;
El segundo método se implementa registrando componentes COM, lo que requiere permisos de servidor y es más adecuado para quienes poseen un servidor.
Además, el primer método de interacción hace que ASP sea más flexible y pueda usarse en dos servidores diferentes para la interacción de datos, y puede usarse ampliamente en varias plataformas heterogéneas.
4. Para obtener la dirección de descarga, vaya a mi sitio web y a mi red de temas móviles para ver la demostración y descargar la dirección de demostración del paquete del programa: http://www.shouji138.com/aspnet2/filemd5.asp
Descarga del paquete de descarga del programa: