Fullnet Software
Messages postés90Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention27 août 2006
-
30 mars 2005 à 14:54
Fullnet Software
Messages postés90Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention27 août 2006
-
30 avril 2005 à 16:41
bonjour, j'aimerais créer une chaine de 32 chiffres et lettres, qui correspondrait au contenu d'un fichier...
c'est pour créer une genre de signature ...
je sais cette chaine ne me permetra pas de savoir ce que contien le fichier mais bon ce n'est pas ça la vocation de la signature que j'espere créer
Une tarte au pommes sans pommes n'est pas une tarte aux pommes.... mais une tarte à... RIEN!
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 30 mars 2005 à 17:42
Salut
Personnellement, je me sers de ce qui suit.
Il ne s'agit que de la date et l'heure d'écriture de modif du fichier sous forme de Long. Ca me suffit pour savoir s'il a été modifié.
Inspire t-en !
Colle ça dans un module :
Option Explicit
Private Const OPEN_EXISTING = 3
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Type BY_HANDLE_FILE_INFORMATION
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
dwVolumeSerialNumber As Long
nFileSizeHigh As Long
nFileSizeLow As Long
nNumberOfLinks As Long
nFileIndexHigh As Long
nFileIndexLow As Long
End Type
Private Declare Function GetFileInformationByHandle Lib "kernel32" (ByVal hFile As Long, lpFileInformation As BY_HANDLE_FILE_INFORMATION) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
'
Public Function IdentitéFichier(ByVal Fichier As String) As String
Dim hFile As Long, FileInfo As BY_HANDLE_FILE_INFORMATION
On Error GoTo Erreur
IdentitéFichier = ""
' Créé le lien vers le fichier
hFile = CreateFile(Fichier, 0, 0, ByVal 0&, OPEN_EXISTING, 0, ByVal 0&)
' Récupère les infos
GetFileInformationByHandle hFile, FileInfo
' Referme le lien
CloseHandle hFile
' Exploite les infos : Date du dernier Write
' Date codée en deux Long : Concatène
IdentitéFichier = CStr(FileInfo.ftLastWriteTime.dwHighDateTime) & _
CStr(FileInfo.ftLastWriteTime.dwLowDateTime)
Exit Function
Erreur:
IdentitéFichier = ""
End Function
Vala
Jack
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
Fullnet Software
Messages postés90Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention27 août 20061 31 mars 2005 à 03:17
donc, canis lupus, si j'utilise seulement le petit bout de code que tu as mis dans lexplication du code, cela me donnera une chaine de 40 caractères, et avec ca, je peut comparer exemple deux chaine voir si elle sont pareilles...
jexplique un peut ce que je veux faire: je veux comparer une chaine (dans ce cas avec ton bout de code) avec une liste de plein de petit code et que si il trouve une similitude parfaite il averti l'usager que le fichier à tel ou tel endroit du répertoire correspond a un fichier X de la base de donnée...
voyez ou je veux en venir??? si non, comparer les fichiers du disques avec une base de données pour savoir si le fichier corespond a un ........ virus.... et oui c'est pour un anti-virus maison... bien sur a ne pas utiliser sans un vrai antivirus..
si je réussi ilme restera que quelques heures (probablement des cetaines) pour refaire la liste des virus posible et inimaginabes.... le most serait de trouver une liste déja faite!!
bon merci pour ta réponse canis lupus...
si ta une idée qui te prend de coup de fouet apres avoir lu ce message, fait moi en part!!
Fullnet Software
Messages postés90Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention27 août 20061 31 mars 2005 à 03:44
jai testé ton déccodeur, celui qui génère les 40 caractères !!! c'est parfait!!!
sur mon ordinateur cela prend entree presque qune fraction et 3 secondes traiter un fichier de 1 octet à 1 meg...
maintenat reste a faire qulque chose qui me permeera de répertorier tout les fiuchiers sans exeptiond du disques et fsire une liste de codes de 40 caractère et la comparer avec une autre module a la liste de clées...
merci canislupus
Projet DSLC Live5
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 31 mars 2005 à 17:35
Je crois qu'il y a une petite incompréhension, il faut que tu télécharge le zip la source complète s'y trouve. Le petit bout de code de la présentation ne permet que de fabriquer un fichier de test.
C'est la fonction Calcul_Cle qu'il faut utiliser.
Sinon, j'utilise cette source aussi pour controler l'intégrité de certains fichiers exécutables sensibles situés sur des serveurs. Les chemins de ces fichiers sont rangés dans une table avec la clé attendue (au 1er passage, si le champ de la clé est vide, je le met à jour) ensuite, je recalcule la clé pour chaque fichier et je la compare. Là, ce n'est plus qu'une question de dialogue entre VB et ACCESS.
Pour lister tous les fichiers du disque, il y a plein d'exemples sur le site.