MOT DE PASSE À L'OUVERTURE D'UN FICHIER EXCEL AVEC TRAÇABILITÉ DANS UN FICHIER T

bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 - 21 mars 2006 à 11:20
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 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.

https://codes-sources.commentcamarche.net/source/36646-mot-de-passe-a-l-ouverture-d-un-fichier-excel-avec-tracabilite-dans-un-fichier-text

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
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és 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
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

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
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
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és 169 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 7 avril 2008 2
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és 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
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és 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 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és 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
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és 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
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és 201 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 10 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és 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
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és 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
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..
Rejoignez-nous