MOT DE PASSE À L'OUVERTURE D'UN FICHIER EXCEL AVEC TRAÇABILITÉ DANS UN FICHIER T
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 2019
-
21 mars 2006 à 11:20
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
2 avril 2006 à 08:20
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 2 avril 2006 à 08:20
Bon ben en fait, c'est pas que c'est inutile ce que j'ai fait mais presque... car, même si on passe au travers de la sécurité des macros avec une Macro Complémentaire, si on décoche l'option "Faire confiance", je suis piné et le fichier s'ouvre sans demande de mot de passe
Par contre, j'ai bifurquer sur une autre idée, je vais essayé de retranscrire ça en VB6 pour le lancement des Applications (code qui sera donc facilement modifiable pour une sorte d'enregistrement du .exe, avec écriture dans le Regedit)
Affaire à suivre...
Mortalino
PS : promis, c'est mon dernier commentaire sur cette source
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 1 avril 2006 à 11:42
Salut la compagnie, en fait je vais donc faire une Macro Complementaire avec les noms de mes fichiers, dans cette Macro je vais intégrer un Algorithme que je viens de faire, en tout cas la vérification a une lettre pret, ca marche bien.
A vous de me dire si ça peut etre pas mal :
(pour le tester, j'avais créé un UserForm1, avec 2 controle : TextBox1 & CommandButton1)
Sub Verifier_Mot_De_Passe()
Dim SaisieMotPasse As String, NbCaractere As Long, i As Long, j As Long, k As Long
Dim Lettre(1 To 16) As String, NbA(1 To 16) As Variant, NbC(1 To 16) As Variant
For i = 1 To NbCaractere
Lettre(i) = Mid(SaisieMotPasse, i, 1)
For j = 1 To 256
If Lettre(i) = Cells(j, 1).Value Then
NbA(i) = Cells(j, 2).Value
NbC(i) = (NbA(i)) * (3 ^ i)
End If
Next j
Next i
Dim MotC As Variant
MotC = 7
For k = 1 To NbCaractere
MotC = MotC + NbC(k)
Next k
MotZ = Range("D1").Value
If MotZ = MotC Then
MsgBox ("Bon Mot de Passe")
Else
MsgBox "Mauvais Mot de Passe"
End If
End Sub
_________________________________________________________________________________________
Sub Saisir_Mot_De_Passe()
Dim SaisieMotPasse As String, NbCaractere As Long, i As Long, j As Long, k As Long
Dim Lettre(1 To 16) As String, NbA(1 To 16) As Variant, NbC(1 To 16) As Variant
For i = 1 To NbCaractere
Lettre(i) = Mid(SaisieMotPasse, i, 1)
For j = 1 To 256
If Lettre(i) = Cells(j, 1).Value Then
NbA(i) = Cells(j, 2).Value
NbC(i) = (NbA(i)) * (3 ^ i)
End If
Next j
Next i
Dim MotC As Variant
MotC = 7
For k = 1 To NbCaractere
MotC = MotC + NbC(k)
Next k
Range("D1").Value = MotC
End Sub
C'est pas tant où je stocke le mot de passe qui m'importe (là c'est temporaire), c'est plus au niveau algo, serait il facile à casser ?
Merci de vos précisions
Mortalino
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 31 mars 2006 à 11:50
Merci K@LOBIT,
En fait je n'avais encore jamais fait de Macro complémentaire, et, en ayant fait une récemment, j'ai effectivement remarqué, que même avec la sécurié des Macros de niveau fort, le code de la Macro complémentaire s'exécute.
Donc je vais m'y attelé, et dès que c'est fait, je transmettrai la Macro complémentaire à la place de mon code Pourrave !!
Merci à tous pour vos savoirs que vous partagez..
Mortalino
kalobit
Messages postés169Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention 7 avril 20082 31 mars 2006 à 09:48
salut,
Pourquoi ne pas créer une macro complémentaire qui gère l'accès aux fichiers.
Cette macro pourraît stocker les chemins fichiers protégés.
En contrôlant les évènement application d'Excel, tu repère si on tente l'ouverture d'un de ces fichiers et tu code un password ou une manip à exécuter pour débloquer l'accès.
par contre on est plus en niveau débutant là mais bon c'est non plus insurmontable.
Pour le MD5, rien ne t'empêche de créer ton propre algo de Hash
un dizaine de ligne suffit et le mot de passe n'est pas décryptable.
bonne prog
K@lobit
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 24 mars 2006 à 10:38
Merci Bouv pour le MD5, je vais me rencarder.
Merci aussi à Celiphane, je t'avouerai que la coup du Maj, je ne connaissais pas et c'est effectivement à prendre en considération.
Mortalino
celiphane
Messages postés466Date d'inscriptionsamedi 16 février 2002StatutMembreDernière intervention20 avril 2007 23 mars 2006 à 01:29
Bonjour,
vous semblez oublier que le fait de laisser enfoncer la touche MAJ pendant l'ouverture de n'importe quel document Office annule toutes les procédures liées au évènement Open, quelque soit le niveau de sécurité...
Bien à vous,
@+
Celiphane
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 21 mars 2006 à 20:52
oups sur la premiere ligne il faut lire cryptage du mot de passe et non cryptage du fichier
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 21 mars 2006 à 20:51
Non un simple cryptage du fichier sera suffisant à mon avis.
Tu stocke le mot de passe en crypté.
Quand l'utilisateur entre son mot de passe tu le crypte et tu compare les deux.
Cherche à propos du MD5 sur le site.
Sinon je n'ai pas essayé mais que se passe-t-il si quelqu'un ouvre le fichier depuis la suite OpenOffice ?
cs_etniqs
Messages postés201Date d'inscriptionmardi 7 octobre 2003StatutMembreDernière intervention10 mai 2016 21 mars 2006 à 14:52
Bonjour,
je vois ce que tu veux faire, et je pense à une autre façon de voir les choses,...avec l'hypothèse suivante : tu peux toujours copier/coller/exécuter une application .exe, quelquesoit le niveau de sécurité (sinon comment tu ouvrirais tes fichiers ... ?)
donc sous VB, tu programmes dans ton coin un truc "transparent" qui fait ce que tu veux faire, MAIS dont le nom après compilation sera... excel.exe, puisque tu auras renommer le vrai excel.exe en excelVB.exe par exemple....
bref, le principe est que ce programme pourra lire un fichier txt avant (exemple : où seront répertoriés les fichiers que tu veux protéger, puis l'ouvrir directement si le fichier n'a pas besoin de mot de passe ou bien demander le mot de passe...) et de toute façon enregistrer l'événement que le gars ait le mot de passe ou pas dans un autre .txt, .log,...
tu pourras toujours à partir de là, gérer les droits d'accès à ces fichiers (renommer,écriture ...)
Y'a encore d'autres solutions, mais le pb est que tu ne peux pas te permettre de mettre du code VBA sans provoquer l'ouverture du message de sécurité : chose qui mettrait trop de puces à l'oreille ...
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 21 mars 2006 à 14:20
Ami Bouv bonjour, (à tout le monde aussi)
En fait, pour être plus explicit, mon fichier se trouve sur le poste du travail, sachant que plusieurs utilisateurs s'y rendent avec le même log que moi, n'importe qui peut accéder aux fichiers perso. Etant donné que c'est l'ordi du boulot et sachant que je bosse pour une grosse boite (Escota / Asf), notre système informatique est très surveillé et ne pouvons installer des logiciels ou composants autre que ce qui est déjà installé.
Le système informatique prévoit également la non possibilité de modifier la Sécurité des Macros, celles-ci se lancent obligatoirement, sans menu contextuelle.
De plus je veux obligatoirement un traçage pour savoir qui tente de l'ouvrir.
Donc sans possibilité de modifier la Sécurité des Macros, je pense qu'il est quand même effectivement difficile à ouvrir (mon administrateur réseau/système a tenté avec echec) et j'ai regardé mon fichier en hexadécimale et tu retrouves difficilement le mot de passe, et je ne connais pas de désassembleur qui ouvre des fichier Excel.
Par contre si tu as des idées pour faire évoluer mon code, je suis preneur !
PS : 1/10 pour ma 1ère source déposé, c'est un peut sévère !?
Amicalement, Mortalino
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 21 mars 2006 à 11:20
Excel propose de protéger ses fichier par mot de passe (mais sans traçage effectivement).
De plus le mot de passe n'est même pas crypté... Le premier demeuré passe au travers sans problème..
2 avril 2006 à 08:20
Par contre, j'ai bifurquer sur une autre idée, je vais essayé de retranscrire ça en VB6 pour le lancement des Applications (code qui sera donc facilement modifiable pour une sorte d'enregistrement du .exe, avec écriture dans le Regedit)
Affaire à suivre...
Mortalino
PS : promis, c'est mon dernier commentaire sur cette source
1 avril 2006 à 11:42
A vous de me dire si ça peut etre pas mal :
(pour le tester, j'avais créé un UserForm1, avec 2 controle : TextBox1 & CommandButton1)
Sub Verifier_Mot_De_Passe()
Dim SaisieMotPasse As String, NbCaractere As Long, i As Long, j As Long, k As Long
SaisieMotPasse = Me.TextBox1.Text
NbCaractere = Len(SaisieMotPasse)
Dim Lettre(1 To 16) As String, NbA(1 To 16) As Variant, NbC(1 To 16) As Variant
For i = 1 To NbCaractere
Lettre(i) = Mid(SaisieMotPasse, i, 1)
For j = 1 To 256
If Lettre(i) = Cells(j, 1).Value Then
NbA(i) = Cells(j, 2).Value
NbC(i) = (NbA(i)) * (3 ^ i)
End If
Next j
Next i
Dim MotC As Variant
MotC = 7
For k = 1 To NbCaractere
MotC = MotC + NbC(k)
Next k
MotZ = Range("D1").Value
If MotZ = MotC Then
MsgBox ("Bon Mot de Passe")
Else
MsgBox "Mauvais Mot de Passe"
End If
End Sub
_________________________________________________________________________________________
Sub Saisir_Mot_De_Passe()
Dim SaisieMotPasse As String, NbCaractere As Long, i As Long, j As Long, k As Long
SaisieMotPasse = Me.TextBox1.Text
NbCaractere = Len(SaisieMotPasse)
Dim Lettre(1 To 16) As String, NbA(1 To 16) As Variant, NbC(1 To 16) As Variant
For i = 1 To NbCaractere
Lettre(i) = Mid(SaisieMotPasse, i, 1)
For j = 1 To 256
If Lettre(i) = Cells(j, 1).Value Then
NbA(i) = Cells(j, 2).Value
NbC(i) = (NbA(i)) * (3 ^ i)
End If
Next j
Next i
Dim MotC As Variant
MotC = 7
For k = 1 To NbCaractere
MotC = MotC + NbC(k)
Next k
Range("D1").Value = MotC
End Sub
C'est pas tant où je stocke le mot de passe qui m'importe (là c'est temporaire), c'est plus au niveau algo, serait il facile à casser ?
Merci de vos précisions
Mortalino
31 mars 2006 à 11:50
En fait je n'avais encore jamais fait de Macro complémentaire, et, en ayant fait une récemment, j'ai effectivement remarqué, que même avec la sécurié des Macros de niveau fort, le code de la Macro complémentaire s'exécute.
Donc je vais m'y attelé, et dès que c'est fait, je transmettrai la Macro complémentaire à la place de mon code Pourrave !!
Merci à tous pour vos savoirs que vous partagez..
Mortalino
31 mars 2006 à 09:48
Pourquoi ne pas créer une macro complémentaire qui gère l'accès aux fichiers.
Cette macro pourraît stocker les chemins fichiers protégés.
En contrôlant les évènement application d'Excel, tu repère si on tente l'ouverture d'un de ces fichiers et tu code un password ou une manip à exécuter pour débloquer l'accès.
par contre on est plus en niveau débutant là mais bon c'est non plus insurmontable.
Pour le MD5, rien ne t'empêche de créer ton propre algo de Hash
un dizaine de ligne suffit et le mot de passe n'est pas décryptable.
bonne prog
K@lobit
24 mars 2006 à 10:38
Merci aussi à Celiphane, je t'avouerai que la coup du Maj, je ne connaissais pas et c'est effectivement à prendre en considération.
Mortalino
23 mars 2006 à 01:29
vous semblez oublier que le fait de laisser enfoncer la touche MAJ pendant l'ouverture de n'importe quel document Office annule toutes les procédures liées au évènement Open, quelque soit le niveau de sécurité...
Bien à vous,
@+
Celiphane
21 mars 2006 à 20:52
21 mars 2006 à 20:51
Tu stocke le mot de passe en crypté.
Quand l'utilisateur entre son mot de passe tu le crypte et tu compare les deux.
Cherche à propos du MD5 sur le site.
Sinon je n'ai pas essayé mais que se passe-t-il si quelqu'un ouvre le fichier depuis la suite OpenOffice ?
21 mars 2006 à 14:52
je vois ce que tu veux faire, et je pense à une autre façon de voir les choses,...avec l'hypothèse suivante : tu peux toujours copier/coller/exécuter une application .exe, quelquesoit le niveau de sécurité (sinon comment tu ouvrirais tes fichiers ... ?)
donc sous VB, tu programmes dans ton coin un truc "transparent" qui fait ce que tu veux faire, MAIS dont le nom après compilation sera... excel.exe, puisque tu auras renommer le vrai excel.exe en excelVB.exe par exemple....
bref, le principe est que ce programme pourra lire un fichier txt avant (exemple : où seront répertoriés les fichiers que tu veux protéger, puis l'ouvrir directement si le fichier n'a pas besoin de mot de passe ou bien demander le mot de passe...) et de toute façon enregistrer l'événement que le gars ait le mot de passe ou pas dans un autre .txt, .log,...
tu pourras toujours à partir de là, gérer les droits d'accès à ces fichiers (renommer,écriture ...)
Y'a encore d'autres solutions, mais le pb est que tu ne peux pas te permettre de mettre du code VBA sans provoquer l'ouverture du message de sécurité : chose qui mettrait trop de puces à l'oreille ...
21 mars 2006 à 14:20
En fait, pour être plus explicit, mon fichier se trouve sur le poste du travail, sachant que plusieurs utilisateurs s'y rendent avec le même log que moi, n'importe qui peut accéder aux fichiers perso. Etant donné que c'est l'ordi du boulot et sachant que je bosse pour une grosse boite (Escota / Asf), notre système informatique est très surveillé et ne pouvons installer des logiciels ou composants autre que ce qui est déjà installé.
Le système informatique prévoit également la non possibilité de modifier la Sécurité des Macros, celles-ci se lancent obligatoirement, sans menu contextuelle.
De plus je veux obligatoirement un traçage pour savoir qui tente de l'ouvrir.
Donc sans possibilité de modifier la Sécurité des Macros, je pense qu'il est quand même effectivement difficile à ouvrir (mon administrateur réseau/système a tenté avec echec) et j'ai regardé mon fichier en hexadécimale et tu retrouves difficilement le mot de passe, et je ne connais pas de désassembleur qui ouvre des fichier Excel.
Par contre si tu as des idées pour faire évoluer mon code, je suis preneur !
PS : 1/10 pour ma 1ère source déposé, c'est un peut sévère !?
Amicalement, Mortalino
21 mars 2006 à 11:20
De plus le mot de passe n'est même pas crypté... Le premier demeuré passe au travers sans problème..