Odzyskaj hasło ochrony arkusza w programie Excel


14

Mam skoroszyt programu Excel.

Dwa lata przed ustawieniem opcji ochrony hasłem dla jednego z arkuszy. Teraz zapomniałem hasła. Czy istnieje sposób na odzyskanie hasła do tego arkusza programu Excel?

Odpowiedzi:


17

Nie możesz odzyskać hasła, ale możesz odblokować arkusz (skrót używany do ochrony arkusza jest dość podatny na kolizje w starych wersjach programu Excel, więc generowanie kolizji jest tutaj dość szybkie).

Dostępne są skrypty, które brutalnie wymuszą otwarcie twojego arkusza w bardzo krótkim czasie.

Spójrz tutaj na przykład: http://www.theofficeexperts.com/VBASamples/Excel02.htm

Oto kod:

Sub PasswordBreaker()
  'Author unknown but submitted by brettdj of www.experts-exchange.com

  Dim i As Integer, j As Integer, k As Integer
  Dim l As Integer, m As Integer, n As Integer
  Dim i1 As Integer, i2 As Integer, i3 As Integer
  Dim i4 As Integer, i5 As Integer, i6 As Integer
  On Error Resume Next
  For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
  For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
  For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
  For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126


 ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
      Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
      Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
  If ActiveSheet.ProtectContents = False Then
      MsgBox "One usable password is " & Chr(i) & Chr(j) & _
          Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
          Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
   ActiveWorkbook.Sheets(1).Select
   Range("a1").FormulaR1C1 = Chr(i) & Chr(j) & _
          Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
          Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
       Exit Sub
  End If
  Next: Next: Next: Next: Next: Next
  Next: Next: Next: Next: Next: Next


End Sub

+1 możliwe rozwiązanie. Odwrotnie: zaprogramuj aplikację za pomocą Apache POI i Digester. Przejdź przez plik i skopiuj go bez dotykania hasła. (Tak, pod pewnymi względami jest to możliwe)
user8885

2
+1 Działa jak urok i dostaje zderzenie w czasie krótszym niż 10 sekund.
Johan - przywróć Monikę

Łał. Niesamowite, że kolizje są (prawie?) Pewne na podstawie 194 560 prób. Miałem swój na około 3000 iteracji. To około 17 bitów całkowitej entropii!
jonallard

Jakikolwiek sposób inny niż VBA? Jestem na OSX i cały plik jest chroniony.
Jonny

Jestem prawie pewien, że to nie zadziała na plikach Excel chronionych programem Excel 2013 i późniejszymi, ze względu na wyższy poziom szyfrowania.
Ƭᴇcʜιᴇ007
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.