Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Passwort für Blattschutz in Makro nicht sichtbar

Forumthread: Passwort für Blattschutz in Makro nicht sichtbar

Passwort für Blattschutz in Makro nicht sichtbar
11.06.2009 19:02:25
Gerrit
Hi Excelperten (mein Gott bin ich heute lustig),
ich weiß, dass der Blattschutz nicht besonders sicher ist. Jedoch hab ich folgendes Makro und es muss ja nicht umbedingt so einfach gehen...:

Sub Workbook_Open()
ActiveSheet.Protect userinterfaceonly:=True, Password:="PASSWORT"
ActiveSheet.EnableOutlining = True     'für Gliederung
ActiveSheet.EnableAutoFilter = True    'für Autofilter
End Sub


Gibt es hier Abhilfe? Lässt sich vielleicht sogar der Zugriff auf den VBA einfach sichern?
Danke und Grüße
Gerr

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Eigenschaften von VBAProject...--Register Schutz.
11.06.2009 19:41:09
VBAProject...--Register
HAllo
Mach mal Procect Explorer rechte Maus auf das VBA-Project.
Eigenschaften von VBAProject...--Register Schutz.
DA kannst du ein Kennwort vergeben.
ISt aber ähnlich unsicher wie der Blattschutz.
ransi
Passwort im Code verschlüsseln
11.06.2009 19:45:58
NoNet
Hallo Gerrit,
Du könntest dazu eine einfache Verschlüsselung verwenden. Dazu gibt es zahlreiche Methoden, ich habe eben mal auf die schnelle eine abwandlung der ROT13-Methode verwendet.
Kopiere folgende Makros in ein allgemeines Modul im VBA-Editor :
VBA-Code:
Function strCrypt(strText) As String
    '11.06.2009, NoNet - www.excelei.de (z.Zt. down !)
    Dim lngS As Long, strTemp As String
    For lngS = 1 To Len(strText)
        strTemp = strTemp & Chr(Asc(Mid(strText, lngS, 1)) + lngS)
    Next
    strCrypt = strTemp
End Function
Function strDeCrypt(strText) As String
    '11.06.2009, NoNet - www.excelei.de (z.Zt. down !)
    Dim lngS As Long, strTemp As String
    For lngS = 1 To Len(strText)
        strTemp = strTemp & Chr(Asc(Mid(strText, lngS, 1)) - lngS)
    Next
    strDeCrypt = strTemp
End Function
Mit der Funktion strCrypt() kannst Du einen beliebigen Text verschlüsseln, z.B. :
Msgbox strCrypt("Passwort") ergibt : Qcvw|uy|
Nun kannst Du im Code folgende Befehlszeile zum Schützen des Tabellenblattes eingeben :
ActiveSheet.Protect userinterfaceonly:=True, Password:=strDeCrypt("Qcvw|uy|")
Das Passwort steht nun nicht mehr im Klartext im VBA-Code !
Allerdings kann jeder, der auch nur ein Minimum an VBA-Kenntnissen besitzt, den Schutz des Tabellenblattes ebenso schnell wieder aufheben.
Darüberhinaus kannst Du aber auch im VBA-Editor per "Extras - Eigenschaften von VB-Projekt - Schutz" den VBA-Code schützen. Allerdings ist auch dieser Schutz wie fast alle Schutzmechanismen in Excel nur marginal, kann also mit etwas KnowHow auch wieder schnell geknackt werden.
Gruß, NoNet
AW: Passwort im Code verschlüsseln
Gerrit

Super, danke für beide Antworten!
Klar ist der Schutz nicht sicher, aber zumindest wollte ich es nicht super einfach gestalten :-)
Grüße
Gerrit
Finde ich interessant,...
Luc:-?

...NoNet,
weil ich mir darüber vor längerer Zeit auch schon Gedanken gemacht hatte (allerdings mit eigener Kryptisierungsmethode und noch etwas komplizierter - mit zusätzl Sicherungen)...
Das Problem ist ja bekanntlich, dass auch andere Passwörter "passen" können. Deshalb habe ich das dann nicht mehr weiterverfolgt. Gelegentlich schwirrt mir durch den Kopf, ob man das nicht so dynamisieren könnte, dass sich das Projekt erfolgreich gg Crackversuche der Mappe (bzw des AddIns) zur Wehr setzen könnte...?! Bliebe dann "nur" noch das Problem der VBA-Deaktivierung (bräuchte man wohl ein immer aktives externes Wächterpgm) und die Crackbarkeit des VBA-Passwortes (inkl HexEditoren). Da habe ich noch keine rechte Meinung; viell ginge das auch dynamisch über externen Wächter (inkl evtl "Straflöschung" des Pgms). Wäre sicher eine reizvolle Afg, wenn wenigstens eine gewisse Aussicht auf Erfolg bestünde (90%ige Sicherheit), wäre mir aber im Moment zu aufwendig...
Was meinst du? Ist so etwas möglich? Wäre das Postulierte ein möglicher, Erfolg versprechender Ansatz? (...wie gesagt auf Basis von mind 90%!) Oder stünde der Aufwand in keinem günstigen Verhältnis zum Erfolg, weil die Struktur nicht genug hergibt?!
Übrigens wäre es beim VBA-Projekt-Passwort auch nicht nötig, dass das Irgendjemand (einschl Pgm und Autor, der hat ja das Original) kennt... Eine evtl Lösung könnte man dann allerdings auch nur unterderhand weitergeben... ;-)
Gruß Luc :-?
Anzeige
AW: Passwort im Code verschlüsseln
11.06.2009 20:03:00
Gerrit
Super, danke für beide Antworten!
Klar ist der Schutz nicht sicher, aber zumindest wollte ich es nicht super einfach gestalten :-)
Grüße
Gerrit
Finde ich interessant,...
11.06.2009 21:40:57
Luc:-?
...NoNet,
weil ich mir darüber vor längerer Zeit auch schon Gedanken gemacht hatte (allerdings mit eigener Kryptisierungsmethode und noch etwas komplizierter - mit zusätzl Sicherungen)...
Das Problem ist ja bekanntlich, dass auch andere Passwörter "passen" können. Deshalb habe ich das dann nicht mehr weiterverfolgt. Gelegentlich schwirrt mir durch den Kopf, ob man das nicht so dynamisieren könnte, dass sich das Projekt erfolgreich gg Crackversuche der Mappe (bzw des AddIns) zur Wehr setzen könnte...?! Bliebe dann "nur" noch das Problem der VBA-Deaktivierung (bräuchte man wohl ein immer aktives externes Wächterpgm) und die Crackbarkeit des VBA-Passwortes (inkl HexEditoren). Da habe ich noch keine rechte Meinung; viell ginge das auch dynamisch über externen Wächter (inkl evtl "Straflöschung" des Pgms). Wäre sicher eine reizvolle Afg, wenn wenigstens eine gewisse Aussicht auf Erfolg bestünde (90%ige Sicherheit), wäre mir aber im Moment zu aufwendig...
Was meinst du? Ist so etwas möglich? Wäre das Postulierte ein möglicher, Erfolg versprechender Ansatz? (...wie gesagt auf Basis von mind 90%!) Oder stünde der Aufwand in keinem günstigen Verhältnis zum Erfolg, weil die Struktur nicht genug hergibt?!
Übrigens wäre es beim VBA-Projekt-Passwort auch nicht nötig, dass das Irgendjemand (einschl Pgm und Autor, der hat ja das Original) kennt... Eine evtl Lösung könnte man dann allerdings auch nur unterderhand weitergeben... ;-)
Gruß Luc :-?
Anzeige
;
Anzeige

Infobox / Tutorial

Passwortschutz für Excel-Tabellenblätter optimieren


Schritt-für-Schritt-Anleitung

Um den Blattschutz in Excel effektiv zu implementieren und das Passwort unsichtbar zu machen, kannst Du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf VBAProject (DeineDatei.xlsx), wähle Einfügen und dann Modul.
  3. Füge den folgenden Code ein:

    Function strCrypt(strText) As String
       Dim lngS As Long, strTemp As String
       For lngS = 1 To Len(strText)
           strTemp = strTemp & Chr(Asc(Mid(strText, lngS, 1)) + lngS)
       Next
       strCrypt = strTemp
    End Function
    
    Function strDeCrypt(strText) As String
       Dim lngS As Long, strTemp As String
       For lngS = 1 To Len(strText)
           strTemp = strTemp & Chr(Asc(Mid(strText, lngS, 1)) - lngS)
       Next
       strDeCrypt = strTemp
    End Function
  4. Schütze das aktive Blatt:

    • Verwende den folgenden Code, um das Passwort für den Blattschutz zu setzen, ohne es im Klartext anzuzeigen:
      Sub ProtectSheet()
      ActiveSheet.Protect userinterfaceonly:=True, Password:=strDeCrypt("Qcvw|uy|")
      End Sub
  5. Rufe das Makro auf:

    • Du kannst das Makro ProtectSheet ausführen, um den Blattschutz zu aktivieren.

Häufige Fehler und Lösungen

  • Problem: Das Passwort wird nicht akzeptiert.

    • Lösung: Überprüfe, ob das Passwort korrekt verschlüsselt wurde. Stelle sicher, dass Du die strDeCrypt-Funktion richtig anwendest.
  • Problem: Die Schutzfunktion funktioniert nicht.

    • Lösung: Stelle sicher, dass das Blatt nicht bereits geschützt ist. Du musst den Schutz zuerst aufheben, bevor Du Änderungen vornehmen kannst.

Alternative Methoden

Es gibt verschiedene Möglichkeiten, den Blattschutz in Excel zu verbessern:

  1. VBA-Projekt schützen:

    • Rechtsklicke im VBA-Editor auf VBAProject, gehe zu Eigenschaften von VBAProject und setze ein Kennwort. Beachte, dass dieser Schutz ebenfalls leicht umgangen werden kann.
  2. Passwort im Code verschlüsseln:

    • Wie bereits erwähnt, kannst Du die strCrypt- und strDeCrypt-Funktionen verwenden, um Passwörter sicher zu speichern.

Praktische Beispiele

  • Passwort für Blattschutz auslesen: Wenn Du ein vergessenes Passwort für den Blattschutz hast, kannst Du mithilfe von Makros versuchen, es herauszufinden. Beachte jedoch, dass dies rechtlich fragwürdig sein kann.

  • Blattschutz kennwort auslesen: Unverschlüsselte Makros können potenziell Passwörter aufdecken. Stelle sicher, dass Du Deine Excel-Dateien ausreichend schützt.


Tipps für Profis

  • Verwende komplexe Passwörter: Je komplizierter das Passwort, desto schwieriger wird es für Dritte, es zu erraten oder zu knacken.

  • Regelmäßige Sicherheitsüberprüfungen: Überprüfe regelmäßig die Sicherheit Deiner Excel-Dateien. Ändere Passwörter und schütze Deine VBA-Projekte.

  • Nutze externe Tools: Es gibt Software, die speziell zur Wiederherstellung von Excel-Passwörtern entwickelt wurde, wenn Du das Kennwort vergessen hast.


FAQ: Häufige Fragen

1. Wie kann ich ein vergessenes Excel Blattschutz Passwort auslesen? Es gibt verschiedene Makros und Tools, die helfen können, ein vergessenes Passwort herauszufinden. Beachte jedoch die rechtlichen Implikationen.

2. Ist es sicher, Passwörter in VBA zu speichern? Es ist nicht sicher, Passwörter im Klartext zu speichern. Nutze Verschlüsselungsmethoden wie strCrypt und strDeCrypt, um Deine Passwörter zu schützen.

3. Was kann ich tun, wenn der Blattschutz nicht funktioniert? Überprüfe, ob das Blatt bereits geschützt ist, und stelle sicher, dass Du die richtigen Passwörter und Funktionen verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige