Il existe de nombreux MD5 pour les caractères cryptés ASP sur Internet, et ils sont très courants, mais le MD5 pour les fichiers est en effet très rare en raison des limitations du langage ASP lui-même. Nous savons que md5 d'une chaîne peut chiffrer de manière irréversible du texte brut pour assurer la sécurité du stockage ou de la transmission des données. De même, le cryptage md5 des fichiers est également utilisé pour garantir qu'ils ne sont pas modifiés et vérifiés lors de la transmission réseau. Une autre utilisation concerne les sites personnels : il peut garantir que les images ou fichiers téléchargés sont uniques. Le principe est qu'après le téléchargement sur le serveur, la valeur md5 du fichier téléchargé est enregistrée dans la base de données en même temps. De cette façon, la prochaine fois que le même fichier sera téléchargé, nous pourrons interroger la base de données pour voir s'il l'est. le même fichier. Si la valeur md5 est la même, nous considérerons qu'elle est la même. Pour les fichiers, la valeur md5 est la "carte d'identité" du fichier. En fait, Baidu a également des applications dans ce domaine. pour les photos sur Baidu et en cliquant sur l'image, parfois "Vous pouvez aussi cliquer sur le lien suivant pour voir cette photo : URL XXX" , le principe est le même, md5 le fichier.
Sans plus tarder, commençons.
1. asp appelle le programme .Net via le mode interactif XML pour implémenter le fichier md5
En raison des limitations de son propre langage, asp ne peut pas implémenter md5 de fichiers, mais .net peut effectivement le faire. Est-il possible d'exécuter md5 sur le fichier via .net, puis d'envoyer les informations à asp pour les recevoir, de sorte que. le md5 d'asp peut être atteint ? Réponse C'est sûr. Cela implique l'interaction entre les programmes ASP et .NET . J'ai déjà écrit une classe ASP : "ASP Processing XML Data Sending and Receive Classes". /blog/item/dec182fc6db36587b801a0f6.html concerne le traitement asp de l'envoi et de la réception de données XML et peut être utilisé pour la communication entre les interfaces API entre divers systèmes hétérogènes. Cet article se trouve être une application de cette classe. Le code est le suivant :
code côté asp
xmlcls.asp
<%
Rem gère l'envoi et la réception de classes de données XML
'------------------------------------------------ -
"Ces informations de copyright doivent être conservées lors de la réimpression
'Auteur : baladeur
'Site Web : Réseau thématique mobile : http://www.shouji138.com
'Version : ver1.0
'------------------------------------------------ -
ClasseXmlClass
Définition de la variable Rem
XmlDoc privé, XmlHttp
Code de message privé, SysKey, XmlPath
Privé m_GetXmlDoc, m_url
privée m_XmlDocAccept
Rem
Sous-classe privée_Initialize()
En cas d'erreur, reprendre ensuite
CodeMessage = ""
CheminXml = ""
Définir XmlDoc = Server.CreateObject("msxml2.FreeThreadedDOMDocument.3.0")
XmlDoc.ASYNC = Faux
Fin du sous-marin
Rem détruit l'objet
Sous-classe privée_Terminate()
Si IsObject (XmlDoc) alors définissez XmlDoc = Nothing
Si IsObject (m_XmlDocAccept) alors définissez m_XmlDocAccept = Nothing
Si IsObject (m_GetXmlDoc) alors définissez m_GetXmlDoc = Rien
Fin du sous-marin
'La définition de l'attribut public démarre -------------------------------
Message d'erreur Rem
Propriété publique Obtenir un message()
Message = CodeMessage
Propriété de fin
Rem l'adresse à laquelle envoyer du XML
Propriété publique Let URL(str)
m_url = chaîne
Propriété de fin
'Fin de la définition de l'attribut public -------------------------------
'Démarrage du processus et de la méthode privés -------------------------------
Rem charger XML
Sous-LoadXmlData privé ()
Si XmlPath <> "" Alors
Si ce n'est pas XmlDoc.Load(XmlPath) Alors
XmlDoc.LoadXml "<?xml version=""1.0"" encoding=""gb2312""?><root/>"
Fin si
Autre
XmlDoc.LoadXml "<?xml version=""1.0"" encoding=""gb2312""?><root/>"
Fin si
Fin de la conversion des caractères Sub
Rem
Fonction privée AnsiToUnicode (ByVal str)
Dim i, j, c, i1, i2, u, fs, f, p
AnsiVersUnicode = ""
p = ""
Pour i = 1 À Len(str)
c = Milieu (str, i, 1)
j = AscW(c)
Si j < 0 Alors
j = j + 65536
Fin si
Si j >= 0 Et j <= 128 Alors
Si p = "c" Alors
AnsiVersUnicode = " " & AnsiVersUnicode
p = "e"
Fin si
AnsiVersUnicode = AnsiVersUnicode & c
Autre
Si p = "e" Alors
AnsiVersUnicode = AnsiVersUnicode & " "
p = "c"
Fin si
AnsiVersUnicode = AnsiVersUnicode & ("&#" & j & ";")
Fin si
Suivant
Fonction de fin
Conversion de caractères Rem
Fonction privée strAnsi2Unicode (asContents)
Dim len1,i,varchar,varasc
strAnsi2Unicode = ""
len1=LenB(asContents)
Si len1 = 0 alors quittez la fonction
Pour i=1 à len1
varchar=MidB(asContents,i,1)
varasc=AscB(varchar)
Si varasc > 127 Alors
Si MidB(asContents,i+1,1)<>"" Alors
strAnsi2Unicode = strAnsi2Unicode & chr(ascw(midb(asContents,i+1,1) & varchar))
Fin si
je=je+1
Autre
strAnsi2Unicode = strAnsi2Unicode & Chr(varasc)
Fin si
Suivant
Fonction de fin
Rem ajoute des caractères au fichier
Sous-privé WriteStringToFile (nom de fichier, str)
En cas d'erreur, reprendre ensuite
Dim fs,ts
Définir fs= createobject("script_ing.filesystemobject")
Si ce n'est pas IsObject (fs), alors quittez Sub
Définir ts=fs.OpenTextFile(Server.MapPath(filename),8,True)
ts.writeline(str)
ts.fermer
Définir ts=Rien
Définir fs=Rien
Fin du sous-marin
'Fin du processus et de la méthode privés -------------------------------
'La méthode publique démarre--www.devdao.com------------------------
''''''''''' Envoyer la partie XML pour démarrer
Rem remplir l'objet XmlDoc à partir d'un fichier XML externe
Sous-public LoadXmlFromFile (chemin)
XmlPath = Server.MapPath(chemin)
LoadXmlData()
Fin du sous-marin
Rem remplir l'objet XmlDoc avec une chaîne
Sous-public LoadXmlFromString(str)
XmlDoc.LoadXml chaîne
Fin du sous-marin
Rem définit les paramètres de nœud tels que NodeValue "appID", AppID,1, False
'------------------------------------------------ -
'paramètre:
'NodeName nom du nœud
'Valeur NodeText
'Type de sauvegarde NodeType [text=0,cdata=1]
'blnEncode s'il faut encoder [true, false]
'------------------------------------------------ -
Sous-noeud public (Byval NodeName, Byval NodeText, Byval NodeType, Byval blnEncode)
Dim ChildNode,CréerCDATASection
Nom du nœud = Lcase (NodeName)
Si XmlDoc.documentElement.selectSingleNode(NodeName) n'est rien alors
Définir ChildNode = XmlDoc.documentElement.appendChild(XmlDoc.createNode(1,NodeName,""))
Autre
Définir ChildNode = XmlDoc.documentElement.selectSingleNode(NodeName)
Fin si
Si blnEncode = True Alors
NodeText = AnsiVersUnicode (NodeText)
Fin si
Si NodeType = 1 Alors
ChildNode.Text = ""
Définir CreateCDATASection = XmlDoc.createCDATASection(Replace(NodeText,"]]>","]]>"))
ChildNode.appendChild(createCDATASection)
Autre
ChildNode.Text = NodeText
Fin si
Fin du sous-marin
'------------------------------------------------ -
'Obtenir la valeur du nœud dans le paquet XML envoyé
'paramètre:
'Nom du nœud str
'------------------------------------------------ -
Propriété publique GetXmlNode(ByvalStr)
Si XmlDoc.documentElement.selectSingleNode(Str) n'est rien alors
XmlNode = "Nul"
Autre
XmlNode = XmlDoc.documentElement.selectSingleNode(Str).text
Fin si
Fin de la propriété
'----------------------------------------------- -- ---
'Obtenir l'objet de données XML renvoyé
'exemple:
'Lorsque GetXmlData n'est pas NULL, GetXmlData est un objet XML
'------------------------------------------------ -
Propriété publique Obtenir GetXmlData()
Définir GetXmlData = m_GetXmlDoc
Propriété de fin
'------------------------------------------------ -
'Envoyer le paquet XML
'------------------------------------------------ -
Sous-public SendHttpData()
Dim je, GetXmlDoc, LoadAppid
Définir Xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")
Définir GetXmlDoc = Server.CreateObject("msxml2.FreeThreadedDOMDocument.3.0") ' Renvoyer le package XML
XmlHttp.Ouvrez "POST", m_url, false
XmlHttp.SetRequestHeader "type de contenu", "texte/xml"
XmlHttp.Envoyer XmlDoc
'Réponse.Write strAnsi2Unicode(xmlhttp.responseBody)
Si GetXmlDoc.load(XmlHttp.responseXML) Alors
Définir m_GetXmlDoc = GetXmlDoc
Autre
MessageCode = "Erreur lors de la demande de données !"
Quitter le sous-marin
Fin si
Définir GetXmlDoc = Rien
Définir XmlHttp = Rien
Fin du sous-marin
'------------------------------------------------ -
'Imprimer les données XML de la demande d'envoi
'------------------------------------------------ -
Sous-public PrintSendXmlData()
Réponse.Effacer
Réponse.ContentType = "texte/xml"
Réponse.CharSet = "gb2312"
Réponse.Expire = 0
Réponse.Écrivez "<?xml version=""1.0"" encoding=""gb2312""?>"&vbNewLine
Réponse.Write XmlDoc.documentElement.XML
Fin du sous-marin
'------------------------------------------------ -
'Imprimer les données XML renvoyées
'------------------------------------------------ -
Sous-public PrintGetXmlData()
Réponse.Effacer
Réponse.ContentType = "texte/xml"
Réponse.CharSet = "gb2312"
Réponse.Expire = 0
Si IsObject(m_GetXmlDoc) Alors
Réponse.Écrivez "<?xml version=""1.0"" encoding=""gb2312""?>"&vbNewLine
Response.Write m_GetXmlDoc.documentElement.XML
Autre
Réponse.Écrivez "<?xml version=""1.0"" encoding=""gb2312""?><root></root>"
Fin si
Fin du sous-marin
Rem enregistre les données XML de la demande d'envoi dans un fichier nommé sendxml_date.txt
Sous-public SaveSendXmlDataToFile()
Dim nom de fichier, str
nom de fichier = "sendxml_" & DateValue (maintenant) & ".txt"
chaîne = ""
str = str & ""& Maintenant() & vbNewLine
str = str & "--------------------------------------------- --- "& vbNouvelleLigne
str = str & "<?xml version=""1.0"" encoding=""gb2312""?>" & vbNewLine
str = str & XmlDoc.documentElement.XML & vbNewLine
str = str & "--------------------------------------------- --- "& vbNouvelleLigne
str = str & vbNouvelleLigne & vbNouvelleLigne & vbNouvelleLigne
WriteStringToFile nom de fichier, str
Fin du sous-marin
Rem enregistre les données XML renvoyées dans un fichier nommé getxml_date.txt
Sous-public SaveGetXmlDataToFile()
Dim nom de fichier, str
nom de fichier = "getxml_" & DateValue (maintenant) & ".txt"
chaîne = ""
str = str & ""& Maintenant() & vbNewLine
str = str & "--------------------------------------------- --- "& vbNouvelleLigne
Si IsObject(m_GetXmlDoc) Alors
str = str & "<?xml version=""1.0"" encoding=""gb2312""?>" & vbNewLine
str = str & m_GetXmlDoc.documentElement.XML
Autre
str = str & "<?xml version=""1.0"" encoding=""gb2312""?>" & vbNewLine & "<root>" & vbNewLine & "</root>"
Fin si
str = str & vbNouvelleLigne
str = str & "--------------------------------------------- --- "& vbNouvelleLigne
str = str & vbNouvelleLigne & vbNouvelleLigne & vbNouvelleLigne
WriteStringToFile nom de fichier, str
Fin du sous-marin
'------------------------------------------------ -
'Obtenir les informations sur le nœud du fichier XML renvoyé
'XmlClassObj.GetSingleNode("//msg")
'------------------------------------------------ -
Fonction publique GetSingleNode (nodestring)
Si IsObject(m_GetXmlDoc) Alors
GetSingleNode = m_GetXmlDoc.documentElement.selectSingleNode(nodestring).text
Autre
GetSingleNode = ""
Fin si
Fonction de fin
''''''''''''''''''Fin de l'envoi de la partie XML
'''''''''''''''''La partie XML de réception démarre
'------------------------------------------------ -
'Recevoir le package XML, les informations d'erreur sont obtenues via l'objet Message
'------------------------------------------------ -
Fonction publique AcceptHttpData()
Faible XMLdom
Définir XMLdom = Server.CreateObject("Microsoft.XMLDOM")
XMLdom.Async = Faux
XMLdom.Load (Demande)
Si XMLdom.parseError.errorCode <> 0 Alors
MessageCode = "Impossible de recevoir les données correctement" & "Descript_ion : " & XMLdom.parseError.reason & "<br>Line : " & XMLdom.parseError.Line
Définir m_XmlDocAccept = Null
Autre
Définir m_XmlDocAccept = XMLdom
Fin si
Fin de la fonction
'-------------------------------------------------------------- -- ---
'Revenir pour recevoir les informations sur le nœud du package XML
'XmlClassObj.GetSingleNode("//msg")
'------------------------------------------------ -
Fonction publique AcceptSingleNode (nodestring)
Si IsObject(m_XmlDocAccept) Alors
AcceptSingleNode = m_XmlDocAccept.documentElement.selectSingleNode(nodestring).text
Autre
AccepterSingleNode = ""
Fin si
Fonction de fin
'------------------------------------------------ -
'Imprimer les données XML reçues par le destinataire
'------------------------------------------------ -
Sous-public PrintAcceptXmlData()
Réponse.Effacer
Réponse.ContentType = "texte/xml"
Réponse.CharSet = "gb2312"
Réponse.Expire = 0
Si IsObject(m_XmlDocAccept) Alors
Réponse.Écrivez "<?xml version=""1.0"" encoding=""gb2312""?>"&vbNewLine
Response.Write m_XmlDocAccept.documentElement.XML
Autre
Réponse.Écrivez "<?xml version=""1.0"" encoding=""gb2312""?><root></root>"
Fin si
Fin du sous-marin
Rem enregistre les données du paquet XML reçu dans un fichier nommé acceptxml_date.txt
Sous-public SaveAcceptXmlDataToFile()
Dim nom de fichier, str
nom de fichier = "acceptxml_" & DateValue (maintenant) & ".txt"
chaîne = ""
str = str & ""& Maintenant() & vbNewLine
str = str & "--------------------------------------------- --- "& vbNouvelleLigne
Si IsObject(m_XmlDocAccept) Alors
str = str & "<?xml version=""1.0"" encoding=""gb2312""?>" & vbNewLine
str = str & m_XmlDocAccept.documentElement.XML
Autre
str = str & "<?xml version=""1.0"" encoding=""gb2312""?>" & vbNewLine & "<root>" & vbNewLine & "</root>"
Fin si
str = str & vbNouvelleLigne
str = str & "--------------------------------------------- --- "& vbNouvelleLigne
str = str & vbNouvelleLigne & vbNouvelleLigne & vbNouvelleLigne
WriteStringToFile nom de fichier, str
Fin du sous-marin
'''''''''''''''''Recevez la partie XML et terminez
Rem. Enregistrez les données de débogage dans un fichier nommé debugnote_date.txt.
Sous-public SaveDebugStringToFile (debugstr)
Dim nom de fichier, str
nom de fichier = "debugnote_" & DateValue (maintenant) & ".txt"
chaîne = ""
str = str & ""& Maintenant() & vbNewLine
str = str & "--------------------------------------------- --- "& vbNouvelleLigne
str = str & debugstr & vbNewLine
str = str & "--------------------------------------------- ---"
str = str & vbNouvelleLigne & vbNouvelleLigne & vbNouvelleLigne
WriteStringToFile nom de fichier, str
End Sub
'La méthode publique se termine -------------------------------
Fin du cours
%>
filemd5fun.asp
<!--#Include File="xmlcls.asp"-->
<%
Rem récupère le md5 du fichier, le paramètre est le nom du fichier
Fonction GetFileMD5 (nom de fichier)
Const Apisysno = "k8n6g2b0m1a6b0f6e8" 'La valeur clé de l'interface doit être cohérente pour empêcher toute application illégale de l'interface
DimXmlClassObj
Définir XmlClassObj = new XmlClass 'Créer un objet
XmlClassObj.LoadXmlFromString("<?xml version=""1.0"" encoding=""gb2312""?><root/>") 'Remplissez l'objet XMLDOC avec des caractères XML et utilisez-le pour envoyer du XML
XmlClassObj.URL = " http://www.shouji138.com/aspnet2/FileMD5.aspx " 'Définissez l'URL de réponse, qui doit être remplacée par votre URL
Format XML rem
Rem "<?xml version="1.0" encoding="gb2312"?>
Rem <racine>
Rem <sysno></sysno>
Rem <apiaction></apiaction>
Rem <nom de fichier></nom de fichier>
Rem </root>
XmlClassObj.NodeValue "sysno",Apisysno,0,False 'Valeur clé de l'interface pour empêcher les applications illégales
XmlClassObj.NodeValue "apiaction","createfilemd5",0,False 'Action de réponse de l'interface, utilisée pour définir une interface à des fins multiples
XmlClassObj.NodeValue "filename",filename,0,False 'Chemin et nom du fichier, utiliser le chemin relatif'XmlClassObj.SaveSendXmlDataToFile
() 'Enregistre le package de base de données XML envoyé dans un fichier txt à des fins de débogage
XmlClassObj.SendHttpData() 'Envoyer des données XML
'XmlClassObj.SaveGetXmlDataToFile() 'Enregistre les données XML reçues
Résultat du traitement Rem
Message Dim, état
status = XmlClassObj.GetSingleNode("//status") 'Afficher l'état, s'il est OK, cela signifie succès, sinon une erreur se produit
message = XmlClassObj.GetSingleNode("//message") 'Afficher la valeur MD5 obtenue Si l'état n'est pas OK, le message est un message d'erreur.
Définir XmlClassObj = Rien
Si statut = "OK" Alors
GetFileMD5 = message
Autre
GetFileMD5 = ""
Fin si
Fin de la fonction
%>
test.asp
<!--#Include File="filemd5fun.asp"-->
<%
Response.Write "La valeur md5 de web.config est :" & GetFileMD5("web.config") & "<br />"
Response.Write "La valeur md5 de files/logo-yy.gif est :" & GetFileMD5("files/logo-yy.gif") & "<br />"
Response.Write "La valeur md5 de xmlcls.asp est :" & GetFileMD5("xmlcls.asp") & "<br />"
%>
Code côté .net :
MD5.cs
utiliser le système ;
en utilisant System.Collections.Generic ;
en utilisant System.Text ;
en utilisant System.IO ;
espace de noms Winsteps.FileMD5
{
classe publique MD5
{
chaîne statique publique md5_hash (chemin de la chaîne)
{
essayer
{
FileStream get_file = new FileStream(chemin, 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);
chaîne resule = System.BitConverter.ToString(hash_byte);
resule = resule.Replace("-", "");
renvoyer le résultat ;
}
attraper (exception e)
{
renvoyer un 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="serveur">
<title>Site Web du thème mobile : http://www.shouji138.com</title>
</tête>
<corps>
<form id="form1" runat="serveur">
<div>
</div>
</form>
</corps>
</html>
FileMD5.aspx.cs
utilisant System ;
en utilisant System.Data ;
en utilisant System.Configuration ;
en utilisant System.Collections ;
en utilisant System.Web ;
en utilisant System.Web.Security ;
en utilisant System.Web.UI ;
en utilisant System.Web.UI.WebControls ;
en utilisant System.Web.UI.WebControls.WebParts ;
en utilisant System.Web.UI.HtmlControls ;
en utilisant System.Xml ;
en utilisant System.Configuration,
l'espace de noms Winsteps.FileMD5 ;
{
classe partielle publique FileMD5 : System.Web.UI.Page
{
protected void Page_Load (expéditeur de l'objet, EventArgs e)
{
chaîne sysno = "11111" ;
état de la chaîne = "Faux" ;
string message = "Erreur non spécifiée" ;
chaîne net2sysno = ConfigurationManager.AppSettings["sysno"];
XmlDocument doc = new XmlDocument();
essayer
{
doc.Load(Request.InputStream);
sysno = doc.SelectSingleNode("//sysno").InnerText.Trim();
si (net2sysno != sysno)
{
message = "Application illégale !";
}
autre
{
string filename = Server.MapPath(doc.SelectSingleNode("//filename").InnerText.Trim());
message = MD5.md5_hash (nom de fichier);
statut = "OK" ;
}
}
attraper(Exception ex)
{
message = ex.Message;
}
enfin
{
si (doc != nul)
doc = nul ;
}
Response.Clear(); //Effacer les caractères HTML
Réponse.ContentType = "texte/xml" ;
Response.Charset = "GB2312";//Si la chaîne XML contient du chinois
Response.Write("<?xml version="1.0" encoding="GB2312"?>");
Réponse.Write("<racine>");
Response.Write(" <statut>" + statut + "</statut>");
Réponse.Write(" <message>" + message + "</message>");
Réponse.Write("</root>");
Réponse.End();
}
}
}
Web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<paramètres de l'application>
<add key="sysno" value="k8n6g2b0m1a6b0f6e8"></add>
</appSettings>
<système.web>
<httpRuntime exécutionTimeout="3600" maxRequestLength="1048576"/>
<compilation debug="true" defaultLanguage="c#" />
<customErrors mode="Désactivé" />
<identité impersonate="true"/>
<mode d'authentification="Formulaires">
<forms name="forums" path="/" loginUrl="Login.aspx" protection="All" timeout="40">
</formulaires>
</authentification>
<pages validateRequest="false"></pages>
<globalisation requestEncoding="gb2312" réponseEncoding="gb2312" culture="zh-CN" uiCulture="zh-CN"/>
</system.web>
</configuration>
Le sysno de web.config doit être cohérent avec le Apisysno dans filemd5fun.asp Lors d'une application spécifique, vous devez remplacer cette clé par votre propre valeur pour garantir la sécurité.
Adresse de démonstration : http://www.shouji138.com/aspnet2/filemd5.asp
Bien que le code soit long, le principe est simple. ASP envoie des données XML à asp.net (le XML contient le nom du fichier qui doit être md5) -> asp.net reçoit le XML et exécute md5 sur le fichier -> asp.net renvoie. le résultat vers asp via XML (le XML contient la valeur md5 obtenue) -> asp obtient le XML renvoyé et analyse la valeur md5.
Champ d'application :
1. Lors du transfert de fichiers entre deux systèmes, vous pouvez exécuter le fichier md5 avant la transmission et le fichier md5 après la transmission pour vérifier si les deux valeurs sont égales, cela signifie qu'elles n'ont pas été modifiées pendant le processus de transmission.
2. Dans le système de téléchargement, s'il est nécessaire que le même fichier ne puisse pas être téléchargé, le md5 du fichier téléchargé peut être stocké dans la base de données. De cette manière, si le même fichier est téléchargé la prochaine fois, le md5 sera le md5. idem et le téléchargement sera refusé.
3. Dans les moteurs de recherche et le logiciel Xunlei b2b, pour le fichier md5, les fichiers avec le même md5 sont considérés comme le même fichier, que les noms de fichiers soient identiques ou non, et les fichiers peuvent être partagés à partir de plusieurs sources.
4. Autres applications. . . . .
2. asp implémente md5 via les composants COM (le composant doit être enregistré sur le serveur)
pour enregistrer un fichier asp composant md5, adresse de téléchargement : DelphiASPObj.in_path=Server.Mappath("Web.config") 'Chemin du fichier
Response.Write "La valeur md5 de web.config est :" & DelphiASPObj.get_path_md5 & "<br />"
Définir DelphiASPObj=rien
%>
3. Comparaison de deux façons d'obtenir le fichier md5
La première méthode consiste à obtenir le md5 du fichier en interagissant avec les données XML avec le programme asp.net. Le serveur doit prendre en charge asp.net. Les hôtes virtuels généraux fournissent un. Environnement asp.net, mais le prix est plus élevé ;
La deuxième méthode est implémentée en enregistrant les composants COM, ce qui nécessite des autorisations de serveur et convient mieux à ceux qui possèdent un serveur.
De plus, la première méthode d'interaction rend ASP plus flexible et peut être utilisée sur deux serveurs différents pour l'interaction de données, et peut être largement utilisée sur diverses plates-formes hétérogènes.
4. Pour l'adresse de téléchargement, veuillez vous rendre sur mon site Web et mon réseau de thèmes mobiles pour voir la démo et télécharger l'adresse de démonstration du package du programme : http://www.shouji138.com/aspnet2/filemd5.asp
Téléchargement du package de téléchargement du programme :