Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Abfrage ob Word-Dokument passwortgeschützt ist (vb.net, VB2010Express)

Frage Entwicklung Visual Studio

Mitglied: ahstax

ahstax (Level 2) - Jetzt verbinden

18.08.2014, aktualisiert 20.08.2014, 1524 Aufrufe, 3 Kommentare, 2 Danke

Hallo,

gibt es in vb.net eine Möglichkeit zu prüfen, ob ein zu öffnendes Word-Dokument passwortgeschützt ist?

Neugierige Grüße,
Andreas
Mitglied: colinardo
LÖSUNG 18.08.2014, aktualisiert 20.08.2014
Hallo Andreas,
wenn es um ein Passwort geht das zum Öffnen des Dokumentes benötigt wird, könntest du es über einen Umweg so machen: Das "Dummypassword" kannst du bei jedem Öffnen eines Dokumentes mit übergeben, nicht passwortgeschützte Dokumente ignorieren den Parameter.
01.
Function isProtected(ByVal path As String) As Boolean 
02.
    Dim objWord As New Word.Application 
03.
    Try 
04.
        Dim doc As Document = objWord.Documents.Open(path, , , , "dummypassword") 
05.
    Catch ex As System.Runtime.InteropServices.COMException 
06.
        If ex.ErrorCode = "-2146822880" Then 
07.
            'Dokument ist Passwortgeschützt 
08.
            Return True 
09.
        End If 
10.
    End Try 
11.
    objWord.Quit() 
12.
    Return False 
13.
End Function
Eine einfache Methode zu erkennen ob ein File geschützt ist oder nicht, ohne das File zu öffnen, ist mir persönlich nicht bekannt. Du müsstest das dann anhand der RAW-Struktur der Word-Dokumente analysieren. Beim OpenXML Format wäre das kein Problem, da ungeschützte Files die "ZIP-Signatur" besitzen, geschützte nicht. Um auch Office 97-2003 Dokumente zu berücksichtigen wäre dies vermutlich aufwändiger.

Grüße Uwe
Bitte warten ..
Mitglied: ahstax
20.08.2014 um 12:12 Uhr
Hallo,

vielen Dank für die Hinweise!!!
Aus irgendeinem Grund hat es mit dem Code von Uwe leider nicht funktioniert.
Ich habe noch etwas anderes gefunden, s.u., womit es für meine Zwecke soweit ganz gut klappt. Ich verwende den Code zwar nur für Word-Dokumente, wenn ich es richtig verstehe, soll aber wohl für alle Dateiformate funktionieren.
Quelle
01.
Public Function AnyFileIsPassworded(ByVal file__1 As String) As Boolean 
02.
  Dim bytes = File.ReadAllBytes(file__1) 
03.
  Return AnyFileIsPassworded(bytes) 
04.
  Return False 
05.
End Function 
06.
 
07.
Public Function AnyFileIsPassworded(ByVal bytes As Byte()) As Boolean 
08.
  Dim prefix = System.Text.Encoding.Default.GetString(bytes.Take(2).ToArray()) 
09.
  If prefix = "PK" Then 
10.
    'ZIP and not password protected 
11.
    Return False 
12.
  End If 
13.
  If prefix = "ÐÏ" Then 
14.
    'Office format. 
15.
    'Flagged with password 
16.
    If bytes.Skip(&H20C).Take(1).ToArray()(0) = &H2F Then 
17.
      Return True 
18.
    End If 
19.
    'XLS 2003 
20.
    If bytes.Skip(&H214).Take(1).ToArray()(0) = &H2F Then 
21.
      Return True 
22.
    End If 
23.
    'XLS 2005 
24.
    If bytes.Skip(&H20B).Take(1).ToArray()(0) = &H13 Then 
25.
      Return True 
26.
    End If 
27.
    'DOC 2005 
28.
    If bytes.Length < 2000 Then 
29.
      Return False 
30.
    End If 
31.
    'Guessing false 
32.
    Dim start = System.Text.Encoding.Default.GetString(bytes.Take(2000).ToArray()) 
33.
    'DOC/XLS 2007+ 
34.
    start = start.Replace(vbNullChar, " ") 
35.
    If start.Contains("E n c r y p t e d P a c k a g e") Then 
36.
      Return True 
37.
    End If 
38.
    Return False 
39.
  End If 
40.
 
41.
  'Unknown. 
42.
  Return False 
43.
End Function
Grüße,
Andreas
Bitte warten ..
Ähnliche Inhalte
Visual Studio
gelöst Vb.net: Word-Doc seitenweise durchsuchen nach Textmarke (7)

Frage von ahstax zum Thema Visual Studio ...

Basic
gelöst Mit vb.net PDF in Word-Dok einfügen (10)

Frage von ahstax zum Thema Basic ...

VB for Applications
VB.net Combobox databinding langsam (3)

Frage von ForgottenRealm zum Thema VB for Applications ...

Erkennung und -Abwehr
Makro in manipuliertem Word-Dokument will Schadsoftware am Mac verbreiten

Link von VGem-e zum Thema Erkennung und -Abwehr ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte