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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen